技术文章

记录Spring Cloud应用在阿里云架构部署

ぃ、小莉子 提交于 2021-02-18 01:03:36
常用的Spring Cloud体系架构 系统部署采用阿里云平台,采用的技术架构为SpringCloud. 采用在线阿里云架构制图工具: Freedgo Design 地址: https://www.freedgo.com, 具体架构如下: 整体架构 主要居于Spring Cloud的分布式微服务架构。主要功能包括: 服务注册发现中心(Eureka server) 通过服务发现可以抽象出部署服务的物理位置如IP,服务调用通过了逻辑名称而不是实际的物理位置,同时服务发现也处理了注册和注销。 服务配置中心(config server) 通过集中式的服务来处理应用程序配置数据。做到无论启动多少个微服务实例,这些实例始终使用相同的配置,同时服务的配置可以和微服务系统分离 服务网关(ZUUL) 通过ZUUL网关,可以强制执行一些功能如内容过滤,路由转发,过滤器等等 Spring Sleuth & ZIPKIN(分布式服务跟踪) 通过Sleuth 相关ID进行全链路跟踪,可以分析服务调用的性能 事件驱动及异步消息 用于处理异步事件如短消息推送,邮件发送等。 用户认证中心(auth2) ZUUL网关 ZUUL网关主要的功能 路由及过滤器设置 通常在ZUUL网关设置过滤器包括前置过滤器、后置过滤器、路由过滤器,可以自定义一些逻辑,在大多数情况下,这种自定义逻辑用于强制执行一组一致的应用程序策略

状压dp

拥有回忆 提交于 2021-02-18 01:03:18
状压dp 概述 状压dp就是用二进制表示状态,并且对其子集进行归并的动态规划。它基于基本的位运算,常出现在NOIP和省选中。 状压有明显的数据范围暗示,一般在20左右 三进制枚举 有时我们需要先枚举一个子集,再枚举这个子集的一个子集,此时我们经常二进制枚举两层再判断是否包含。这样很直接,但不如三进制枚举快速。 假设我们有集合$S$,我们需要$A\subseteq S$,$B\subseteq A$,此时$S$集合的元素有三种情况:只在$S$中;既在$S$中又在$A$中;同时在三个集合中。只有三种情况,于是我们可以三进制枚举。 三进制枚举模式代码: for (int x = 0; x < (1 << n); ++x) { for (int y = x;; y = (y - 1) & x) { for (int i = 0; i < n; ++i) { if ((x >> i) & 1) { // Do something } if ((y >> i) & 1) { // Do something } } // Do something if (y == 0) break; } } 代码中关键的语句是 y = (y - 1) & x , -1 保证状态不同且最接近原状态 & 保证是子集。 例题: P1896 [SCOI2005]互不侵犯 题意很简单,就是在$N\times N

layUI之树状表格异步加载组件treetableAsync.js(基于treetable.js)

冷暖自知 提交于 2021-02-18 01:03:00
[TOC] 概述 后台框架中使用树状表格是非常常用的操作,layUI本身并没有这种组件。 第三方的treetable.js做到了完美的实现,但是不能实现在双击时异步加载数据,本文就是站在了巨人的肩膀上实现的异步加载的树状表格~ 1. 使用说明   本组件基于treetable.js组件进行编写,最大的区别在treetable.js无法进行异步加载,而本组件则使用异步加载树状表格。   因此,若无异步加载需求,建议直接使用treetable.js,有异步加载需求时,可使用本组件。   本组件treetableAsync.js下载地址: https://pan.baidu.com/s/1qZXi7mLJj0ZvjMd4mGbjFA 提取码:808p   本组件所依赖的treetable.js下载地址: https://pan.baidu.com/s/1fx5_sFRb0Noa4NCIdDoltw 密码:e891 (源码有修改,因此不能使用官方下载的原版本) 2. 使用需知 2.1 本组件依赖于treetable.js【重中之重】   由于本组件依赖于treetable.js,因此使用本组件时,需首先引入treetable.js,方可使用。 但由于treetable.js的源码进行过修改,因此不能使用官方下载的原版本。   代码示例: layui.config({ base: '../.

Characterization of Dynkin diagrams

坚强是说给别人听的谎言 提交于 2021-02-18 01:01:15
Nowadays, I am reading D.J.Benson's nice book, volume I of Representations and cohomology . I found it has a nice description on Dynkin diagrams. So I want to make a note on it and on it here. If the application is successful, I will have more time on Mathematiques intersting me. If the time permits, I will make anther note about the relationship of root system and Dynkin diagrams. Contents Dynkin diagrams and Euclidean diagrams Cartan matrix and characterization of Dynkin diagrams using subadditve functions Characterization using positive definity of Cartan's matrix Dynkin diagrams and

Python3网络爬虫(1):利用urllib进行简单的网页抓取

旧巷老猫 提交于 2021-02-18 01:00:44
1.开发环境   pycharm2017.3.3   python3.5 2.网络爬虫的定义   网络爬虫,也叫网络蜘蛛(web spider),如果把互联网比喻成一个蜘蛛网,spider就是一只在网上爬来爬去的蜘蛛,网络爬虫就是根据网页的地址来寻找网页的,也就是URL。举一个简单的例子,我们在浏览器的地址栏中输入的字符串就是URL,例如:https://www.baidu.com/   URL就是统一资源定位符(uniform resource location),他的一般格式如下(带方括号[]的为可选项)     protocol://hostname[:port]/path/[:parameters][?query]#fragment   URL的格式由三部分组成:     (1)protocol:第一部分就是协议,例如百度使用的就是https协议;     (2)hostname[:port]:第二部分人就是主机名(还有端口号为可选参数),一般网站默认的端口号为80     (3)path:第三部分就是主机资源的具体地址,如目录和文件名等,网络爬虫就是根据这个URL来获取网页信息的 3.简单爬虫实例   在Python3.x中,我们可以使用urllib这个组件抓取网页,urllib是一个URL处理包,这个包中集合了一下处理url的模块,如下:     (1)urllib

Atlas 2.1.0 实践(2)—— 安装Atlas

折月煮酒 提交于 2021-02-18 00:59:53
在完成Atlas编译以后,就可以进行Atlas的安装了。Atlas的安装主要是安装Atlas的Server端,也就Atlas的管理页面,并确保Atlas与Kafka Hbase Solr等组件的集成。 Atlas的系统架构如下,在确保 底层存储与UI界面正常后,之后就可以进行与Hive等组件的集成调试了。 一、环境准备 安装之前 先要准备好 JDK1.8 Zookeeper Kafka Hbase Solr 在启动Atlas时会配置这些环境变量的地址,所以一定要确保以上组件正常运行。 由于在编译时可以选择内部集成,所以这些Atlas是可以自带的,但是JDK一定要安装好。 在安装Altas中,需要Solr 预先创建好collection bin/solr create -c vertex_index -shards 3 -replicationFactor 2 bin/solr create -c edge_index -shards 3 -replicationFactor 2 bin/solr create -c fulltext_index -shards 3 -replicationFactor 2 在solr中验证创建成功。 二、安装Atlas 到编译好的包的路径下 apache-atlas-sources-2.1.0/distro/target 将生成好的安装包

Zabbix + Grafana

别来无恙 提交于 2021-02-18 00:59:34
Grafana 简介 Grafana 自身并不存储数据,数据从其它地方获取。需要配置数据源 Grafana 支持从 Zabbix 中获取数据 Grafana 优化了图形的展现,可以用来做监控大屏 Grafana 支持用户的认证 下载地址: https://grafana.com/docs/installation/rpm/ 安装并启动 wget https://dl.grafana.com/oss/release/grafana-6.1.4-1.x86_64.rpm sudo yum localinstall grafana-6.1.4-1.x86_64.rpm systemctl start grafana-server.service systemctl enable grafana-server.service 登录 # ip + 3000端口访问 http://172.16.0.41:3000 # 初始用户密码 admin admin 第一次登录需要强制修改密码 Grafana 简单实用 创建 dashboard , 其次创建图形 每次操作都需 save 保存, 类似代码写完提交代码管理库一样. 创建 dashboard Grafana 支持的数据源 Grafana 安装 Zabbix 插件 grafana-cli plugins list-remote grafana

Kubernetes集群调度器原理剖析及思考

巧了我就是萌 提交于 2021-02-18 00:59:00
简述 云环境或者计算仓库级别(将整个数据中心当做单个计算池)的集群管理系统通常会定义出工作负载的规范,并使用调度器将工作负载放置到集群恰当的位置。好的调度器可以让集群的工作处理更高效,同时提高资源利用率,节省能源开销。 通用调度器,如Kubernetes原生调度器Scheduler实现了根据特定的调度算法和策略将pod调度到指定的计算节点(Node)上。但实际上设计大规模共享集群的调度器并不是一件容易的事情。调度器不仅要了解集群资源的使用和分布情况,还要兼顾任务分配速度和执行效率。过度设计的调度器屏蔽了太多的技术实现,以至于无法按照预期完成调度任务,或导致异常情况的发生,不恰当的调度器的选择同样会降低工作效率,或导致调度任务无法完成。 本文主要从设计原理、代码实现两个层面介绍Kubernetes的调度器以及社区对其的补充加强,同时对业界常用调度器的设计实现进行比较分析。通过本文,读者可了解调度器的来龙去脉,从而为选择甚至设计实现适合实际场景的调度器打下基础。 注明:本文中代码基于v1.11版本Kubernetes进行分析,如有不当之处,欢迎指正! 一、调度器的基本知识 1.1 调度器的定义 通用调度[1]的定义是指基于某种方法将某项任务分配到特定资源以完成相关工作,其中任务可以是虚拟计算元素,如线程、进程或数据流,特定资源一般是指处理器、网络、磁盘等

如何处理Win10电脑黑屏后出现代码0xc0000225的错误?

房东的猫 提交于 2021-02-18 00:57:46
有些Win10系统的用户反映电脑在开机的时候突然变成黑屏,还出现提示0xc0000225的错误代码,不知道该怎么去解决。一般来说,遇到这种情况一般是系统的注册表出现了问题。下面就为大家分享一下相应的解决方法。 Win10系统电脑黑屏,错误代码0xc0000225的解决方法 1、首先在电脑开机的时候按下F8,选择进入电脑的安全模式。 2、进入系统的安全模式后,使用“WIN+X”打开系统菜单,选择“命令提示符(管理员)”。 3、在打开的窗口中输入“for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1”,然后按下回车键。重启电脑后,这个问题就可以解决了。 4、如果电脑的安全模式也无法进入,那就只能用 好系统U盘启动重装系统 了。 以上就是Win10系统电脑开机出现黑屏,错误代码为0xc0000225的解决方法了,若你的电脑也碰到了上述情况,不妨按照上面的方式去试试看。 文章转自好系统U盘启动: https://www.vkebao.com/news/J1hVI2.html 来源: oschina 链接: https://my.oschina.net/u/4306388/blog/3892711

答好友困惑:Java零基础如何入门,不知道怎么学,迷茫ING

匆匆过客 提交于 2021-02-18 00:56:54
作者:程序员小跃 几个星期之前,我在知乎上看到一个提问,说是: 对于完全没有经验零基础自身的数学底子也很弱学习Java应该怎么学习呢 ?想着类似的问题我也有过回答,并且反馈还是蛮好的,就参考之前的思路回答了一遍,可惜没在公众号里和大家分享,后续再整理一份好好分享下。( 该问答地址见原文 ) 提出问题的是一位高中生,就顺藤摸瓜加了我好友,让我给指点指点。跃哥最近飘了,各种给人指点,也不知道是对是错,但是我还是从自身的角度来分析问题,毕竟我也工作多年,给初学者一些信心是我该做的;给初学者一些指导,是我力所能及的;给初学者一些劝退,也是我要做的,毕竟很多人可能最后发现自己并不适合写程序。 期间这位老弟和我聊了很多,我都零零散散给了解答。直到前几天,他抛给我很多困惑,都是在初学的时候会面临到的,所以我就抽时间做了一次详细的解答,主要涉及到 Java从入门到进阶需要经历哪些 、 如何学习Java入门 、 还没开始实践就有一堆烦恼,该怎么办? 本文将以问答的方式,给出一些简单的见解,因为Java内容挺多的,可能会有遗漏,我已经让群里的小伙伴们做过一次筛选,读者朋友们看到了,也可以给我更多的补充噢。 知友:哥,我前两天也想了一些编程的问题向您请教请教吧,希望能得到你的帮助 第一个呢就是Java学习路线是什么,Java各个阶段需要学的知识点有什么,课程大纲