架构设计
文章平均质量分 88
架构师老狼
资深架构师,专注于区块链、微服务、大数据研究!坚定信念,乐观心态,永不止步!
展开
-
2022 Mysql优化来一波
1 redo log(重做日志)1)InnoDB首先将redo log放入到redo log buffer,然后按一定频率将其刷新到redo log file。下列三种情况下会将redo log buffer刷新到redo log file:Master Thread每一秒将redo log buffer刷新到redo log file每个事务提交时会将redo log buffer刷新到redo log file当redo log缓冲池剩余空间小于1/2时,会将redo log buffer刷新原创 2022-01-27 11:32:18 · 1251 阅读 · 0 评论 -
clickhouse 21.x生产实践优化
1 时间字段类型建表时能用数值型或日期时间型表示的字段就不要用字符串,全String 类型在以Hive(hbase)为中心的数仓建设中常见,但 ClickHouse 环境不应受此影响。虽然 ClickHouse 底层将DateTime 存储为时间戳Long类型,但不建议存储Long 类型,因为DateTime 不需要经过函数转换处理,执行效率高、可读性好。2 Nullable类型官方已经指出Nullable 类型几乎总是会拖累性能,因为存储Nullable 列时需要创建一个额外的文件来存储 N.原创 2022-01-23 14:40:26 · 1775 阅读 · 0 评论 -
微服务治理系列二
注册中心Nacos1 主流注册中心对比2 CAP实践C是所有节点在同一时间看到的数据是一致的;而A的定义是所有的请求都会收到响应。何时选择使用何种模式?如果不需要存储服务级别的信息且服务实例是通过nacos-client注册,并能够保持心跳上报,那么就可以选择AP模式。当前主流的服务如 Spring cloud 和 Dubbo 服务,都适用于AP模式,AP模式为了服务的可能性而减弱了一致性,因此AP模式下只支持注册临时实例。如果需要在服务级别编辑或者存储配置信息,那么 CP 是必须,K8S服原创 2021-12-31 15:29:21 · 1788 阅读 · 0 评论 -
微服务治理系列一
响应式编程:1 spring mvc与spring webflux两个框架都可以使用注解方式,都运行在 Tomet 等容器中;SpringMVC 采用命令式编程,Webflux 采用异步响应式编程SpringMVC 方式实现,同步阻塞的方式,基于 SpringMVC+Servlet+Tomcat;SpringWebflux 方式实现,异步非阻塞 方式,基于 SpringWebflux+Reactor+Netty2 响应式编程(Reactor 实现)响应式编程操作中,Reactor 是满足 R原创 2021-12-30 17:50:15 · 383 阅读 · 0 评论 -
kafka优化笔记
1 mq的作用解耦、异步、削峰填谷2 kafka架构1)Producer :消息生产者,就是向 kafka broker 发消息的客户端;2)Consumer :消息消费者,向 kafka broker 取消息的客户端;3)Consumer Group (CG):消费者组,由多个 consumer 组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。4)Broker :一台原创 2021-11-14 21:31:22 · 127 阅读 · 0 评论 -
Hadoop3.x生产环境调优之高可用
1 hadoop HA高可用实现高可用最关键的策略是消除单点故障。HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA。前提:配置zookeeper集群1.1 HDFS HA 高可用工作机制元数据管理方式需要改变:内存中各自保存一份元数据;Edits日志只有Active状态的NameNode节点可以做写操作;两个NameNode都可以读取Edits;共享的Edits放在一个共享存储中管理(journal和NFS两个主流实现);需要一个状态管理功能模块:实现了一个zkfai原创 2021-09-13 16:26:10 · 365 阅读 · 0 评论 -
微服务性能监控 APM工具
Elastic APMElastic APM是基于Elastic Stack构建的应用性能监控(APM)系统。请求日志:用来实时监控应用性能信息,包括HTTP请求调用时长、数据库查询信息、缓存调用信息和外部的HTTP请求调用信息。有助于我们快速找出并解决性能问题。日志跟踪:自动收集应用中未处理的错误和异常,显示异常的堆栈信息,有助于快速定位异常和了解出现频率。JVM度量:度量指标是调试生产系统时的另一个重要信息来源。Elastic APM Agent 会自动收集主机级别的度量指标(比如Java J原创 2021-06-20 10:28:50 · 1139 阅读 · 0 评论 -
智慧医疗 - 微服务最佳实践
01 产品分析与定位02 微服务架构设计以业务为中心高内聚低耦合高度自治弹性设计日志与监控自动化03 实时消息推送技术演进接入层负载均衡基于http七层负载均衡,从HA演进到NginxHA支持TCP与Http协议,支持8种负载均衡策略,支持通过URL健康检测,支持心跳检测,工作在网络4层和7层,但对ws协议支持不好,造成ws消息堆积Nginx支持Http协议,工作在网络7层,支持WebSocket协议,支持通过端口健康检测,支持强大的正则匹配规则Nginx分流:ser原创 2021-05-17 09:27:23 · 773 阅读 · 1 评论 -
RabbitMQ实现支付订单延迟消息
1. RabbitMQRabbitMQ是一个被广泛使用的开源消息队列。它是轻量级且易于部署的,它能支持多种消息协议。RabbitMQ可以部署在分布式和联合配置中,以满足高规模、高可用性的需求。2. RabbitMQ机制3. 死信队列“死信”是RabbitMQ中的一种消息机制,当你在消费消息时,如果队列里的消息出现以下情况:消息被否定确认,使用 channel.basicNack 或 channel.basicReject ,并且此时requeue 属性被设置为false。消息在队列的存活时间原创 2021-02-14 17:19:25 · 2268 阅读 · 0 评论 -
微服务幂等性
1 幂等场景用户重复操作:用户在使用产品时,可能会无意的触发多笔交易,甚至没有响应而有意触发多笔交易网络波动:因网络波动,可能会引起重复请求分布式消息消费:任务发布后,使用分布式消息服务来进行消费未关闭的重试机制:因开发人员、测试人员或运维人员没有检查出来,而开启的重试机制(如Nginx重试、RPC通信重试或业务层重试等)2 幂等性分析新增类请求数据库自增主键,不具备幂等性查询类动作重复查询不会产生或变更新的数据,因此查询是天然具备幂等性更新类请求基于条件查询的Update,不一原创 2021-02-12 13:58:37 · 358 阅读 · 1 评论 -
spark 2.x spark算子调优
算子调优一:mapPartitions普通的map算子对RDD中的每一个元素进行操作,而mapPartitions算子对RDD中每一个分区进行操作。如果是普通的map算子,假设一个partition有1万条数据,那么map算子中的function要执行1万次,也就是对每个元素进行操作。spark map 算子如果是mapPartition算子,由于一个task处理一个RDD的partition,那么一个task只会执行一次function,function一次接收所有的partition数据原创 2020-05-27 08:06:27 · 262 阅读 · 0 评论 -
SpringBoot redis 3.x cluster模式应用
redis3.2+升级cluster功能:1主从模式:主从分片,为每一个master节点创建replica,主节点宕机,从节点升级为主节点,保证服务延续性2负载均衡:集群根据流量redict to node3读写分离:主节点写操作,从节点备份读操作4ruby脚本简单创建集群部署原创 2017-11-29 17:54:39 · 4246 阅读 · 2 评论 -
SpringBoot RabbitMQ 集群模式
springBoot出现是soa开发模式的一次革命,把javaer从xml配置中解放出来,这也是微服务流行起来的重要原因,使分布式成为主流。同时无缝连接springcloud提供服务治理、服务网关、配置热启动刷新、断路由、服务监听等,接下来记录曾经的点点滴滴!原创 2017-10-19 14:09:49 · 2928 阅读 · 1 评论 -
一分钟:Nginx+Keepalived部署
1基础环境 测试机器1 192.168.0.251 MASTER Keepalived+nginx 测试机器2 192.168.0.252 BACKUP Keepalived+nginx 虚拟vip 192.168.0.100 Vip 2 nginx配置 251/252都安装nginx,开放统一端口1000server { listen ...原创 2018-01-05 21:44:13 · 489 阅读 · 0 评论 -
一分钟:微服务架构演进
优点: 1)内网与外网分离 2)暴露外网ip之有网关,网关统一路由做全局权限、公共访问拦截处理 3)内部服务多节点部署,增加服务延续性,可水平扩展缺点: 1)网关单节点,或者nginx代理多节点,nginx宕掉怎么办? 2)Nginx宕掉,正在访问处理怎么办?解决方案: 方案一:dns轮询服务网关优点: 1)可灵活水平扩展服务网关节点 2)DNS轮询技术从成熟,增加节点原创 2018-01-05 21:40:14 · 739 阅读 · 0 评论 -
电商订单派单模式实践(Java版)
思路:来源于某家装互联网公司,c端下订单,订单派单中心的职责把订单按派单算法分配给b端。原创 2017-08-01 11:25:41 · 6307 阅读 · 5 评论 -
mysql主从应用
mysql主从、主主复制应用场景很多,其原理主推,从定时根据binlog增量拉取更新。如果主/从机器硬件负载过高,或者网络延迟就会造成同步延迟。延迟是必然,mysql复制同步解决的是数据高可用问题提供延后一致性。要解决完全一致性,需要解决的高并发问题 - 可以从业务粒度考虑,增加nosql中间层或者mysql proxy或者mysql 5.7提供了完全一致性方案,但数据层来处理这些问题不可取!原创 2017-08-01 11:06:12 · 683 阅读 · 0 评论