首页 文章 精选 留言 我的

精选列表

搜索[单体架构],共10000篇文章
优秀的个人博客,低调大师

particle云架构详细讲解

第一部分:针对于普通服务的基础框架封装(entity、dao、service、controller、api)等 第二部分:springcloud通用微服务项目,可以监控左右微服务,当然,本身自己也是微服务。 第三部分:针对于框架内所有组件的封装,可以植入任何的模块项目中。 第四部分:自身项目的微服务业务,比如:会员模块、消息模块、资金模块、订单模块等。 我们针对于以上四个模块分别做详细讲解: 第一部分:针对于particle-framework模块: 1.包括阿里巴巴Druid的配置封装,包括登录的用户名密码,数据库连接池、插件框架和SQL解析器,统计SQL信息、SQL性能收集、SQL注入检查、SQL翻译等。 2.日志封装,其中包括:preHandle、afterCompletion、log等。 3.通用BaseApiController的封装,处理通用异常信息。 4.任务定时调度通用封装。 5.针对于业务core的通用封装,整合mybatisplus,进行可配置化的Annotation的注解扫描。 6.针对于基础redis分布式缓存的封装。 7.针对于统一的web工程的配置化封装,包括:编码、使用域等。 8.针对于业务系统微服务注册的封装,discoveryclient提供注解方式: 向EurekaServer注册当前实例向EurekaServer更新租约当EurekaServer停止的时候取消租约查找EurekaServer中注册的服务和实例

优秀的个人博客,低调大师

AnalyticDB for MySQL技术架构解析

企业数据需求不断变化,近年来变化趋势日益明显,从数据的3V特性看:体积,速度和变化;Big Data强调数据量,PB级以上,是静态数据。而Fast Data在数据量的基础上,意味着速度和和变化,意味着客户可以更加实时化、更加快速地进行数据处理。 在Forrester最近的一项研究中,超过75%的受访公司已经使用Fast Data解决方案。 在接受调查的人中,88%表示他们需要近乎实时地对数据执行分析。 AnalyticDB是阿里巴巴自主研发、唯一经过超大规模以及核心业务验证的PB级实时数据仓库,是FastData的最佳代表。自2012年第一次在集团发布上线以来,至今已累计迭代发布近百个版本,支撑起集团内的电商、广告、菜鸟、文娱、飞猪等众多在线分析业务。AnalyticDB于2014年在阿里云开始正式对外输出,支撑行业既包括传统的大中型

优秀的个人博客,低调大师

微服务架构-雪崩效应

微服务化产品线,每一个服务专心于自己的业务逻辑,并对外提供相应的接口,看上去似乎很明了,其实还有很多的东西需要考虑,比如:服务的自动扩充,熔断和限流等,随着业务的扩展,服务的数量也会随之增多,逻辑会更加复杂,一个服务的某个逻辑需要依赖多个其他服务才能完成。一但一个依赖不能提供服务很可能会产生雪崩效应,最后导致整个服务不可访问。 微服务之间进行rpc或者http调用时,我们一般都会设置调用超时,失败重试等机制来确保服务的成功执行,看上去很美,如果不考虑服务的熔断和限流,就是雪崩的源头。 假设我们有两个访问量比较大的服务A和B,这两个服务分别依赖C和D,C和D服务都依赖E服务 A和B不断的调用C,D处理客户请求和返回需要的数据。当E服务不能供服务的时候,C和D的超时和重试机制会被执行 由于新的调用不断的产生,会导致C和D对E服务的调用大量的积压,产生大量的调用等待和重试调用,慢慢会耗尽C和D的资源比如内存或CPU,然后也down掉。 A和B服务会重复C和D的操作,资源耗尽,然后down掉,最终整个服务都不可访问。 常见的导致雪崩的情况有以下几种: 程序bug导致服务不可用,或者运行缓慢 缓存击穿,导致调用全部访问某服务,导致down掉 访问量的突然激增。 硬件问题,这感觉只能说是点背了⊙︿⊙。 虽然雪崩效应的产生千万条,保证服务的不挂机,和流畅运行是我们不可推卸的责任,对应雪崩效应还是有很多保护方案的。 服务的横向扩充 现在我们可以利用很多工具来保证服务不会挂掉,然后流量比较大的时候,可以横向扩充服务来保证业务的流畅。比如我们最常使用k8s,能保证服务的运行状态,也可以让服务自动的横向扩充。对于用户访问量的激增情况这样处理还是很不错的,但是,横向扩充也是有尽头的,如果在一定环境下E服务的响应时间过长,依然有可能导致雪崩效应的产生。 限流 限制客户端的调用来达到限流的做法是很常见的,比如,我们限制每秒最大处理200个请求,超过个数量直接拒绝请求。常见的算法如令牌桶算法 以一定的速度在桶里放令牌,当客户端请求服务的时候,要先从桶里得到令牌,才能被处理,如果没桶里的令牌用完了,则拒绝访问。 熔断 在客户端控制对依赖的访问,如果调用的依赖不可用时,则不再调用,直接返回错误,或者降级处理。开源的库比如hystrix-go,也是我接下来要写的源码分析的一个库。很好的实现了熔断和降级的功能。他的主要思想是,设置一些阀值,比如,最大并发数,错误率百分比,熔断尝试恢复时间等。能过这些阀值来转换熔断器的状态: 关闭状态,允许调用依赖 打开状态,不允许调用依赖,直接返回错误,或者调用fallback 半开状态,根据熔断尝试恢复时间来开启,允许调用依赖,如果调用成功则关闭失败则继续打开 具体的实现方式和对hystrix-go源码的分析,我在后续的帖子会详细给大家介绍。

优秀的个人博客,低调大师

grafana部署高可用架构

为了获得高可用性的服务,需要对单台部署grafana的服务器进行扩充。 图片引自grafana文档 这个过程中需要做两件事: 配置一个公共数据库,使所有的grafana服务器可以将配置写入公共数据库中而不是存在本地; 选用一个会话存储方案,这一步可以通过让负载均衡启用会话保持功能解决 数据库配置 grafana为数据库提供多种可选方案,包括:mysql,postgresql,sqlite3(default)。配置文件为: vi /etc/grafana/grafana.ini 配置项为database部分: # You can configure the database connection by specifying type, host, name, user and password # as separate properties or as on string using the url properties. # Either "mysql", "postgres" or "sqlite3", it's your choice type = mysql ;数据库类型 host = www.url.com ;数据库域名 name = grafana_configure ;数据库名称 user = admin ;数据库用户名 # If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;""" password = admin_password ;数据库用户密码 # Use either URL or the previous fields to configure the database # Example: mysql://user:secret@host:port/database ;url = # For "postgres" only, either "disable", "require" or "verify-full" ;ssl_mode = disable "/etc/grafana/grafana.ini" 487L, 15112C written 仅需要为grafana开辟一个数据库即可,数据表和字段将在用户新建一个dashboard后自动写入。 会话策略 grafana支持将回话保存在磁盘/数据库中,这两种保存方法对应着两种策略:会话保持和无状态会话。 会话保持配合负载均衡,将同一用户的请求转发到相同的服务器上。这样工作量最小,但是也会出现某台服务器负载较其他服务器更高的情况。 无状态回话grafana将用户的会话保存在数据库中,这样同一用户的会话也将会被分发到各个服务器中处理,这种方式需要在数据库中提前预设一张数据表,在grafana.ini中的session部分有关于此项的配置信息。 方案步骤 新建一个数据库,为grafana新建可操作用户 部署N台grafana服务器,修改各服务器的grafana.ini文件,写入数据库相关配置信息,重启grafana-server。 将配置好的grafana服务器挂载到负载均衡中,开启会话保持 访问负载均衡的IP,获得高可用的grafana服务

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册