- 博客(151)
- 资源 (7)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 “三步走”推动云原生转型之路
对于企业而言,如何平稳的从传统研发模式过渡到云原生时代,除了坚持结合云原生应用的特点,持续推动基础架构和应用架构的转型,还需要围绕“深度融合云技术能力、做厚业务基础能力、提升内建质量”等三个步骤,推进云原生转型之路。
2023-04-09 12:54:01
658
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 透析云原生应用与云的关系
开发在云上可以依托云上组件,充分利用云平台提供的存储、计算、网络等基础服务和工具,实现开发流程的自动化和标准化。随着智能模型ChatGPT的实现,分布式训练、全场景部署方案受到越来越多人的关注和认可,但是我们需要讨论的可能不仅仅是如何完成部署,而是通过云原生最终完成自己的跨时代创新,在这之前,企业也需要理解如何基于云原生应用完成现代化业务架构的五个底层逻辑,通过“开发在云、构建在云、架构在云、运行在云、数据在云”,企业将“云时代”掌握在自己手中。是指利用云平台的构建工具和环境,基于云平台构建业务系统。
2023-04-09 12:41:58
224
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 云原生应用的十大特征
云原生应用作为一种全新的应用开发和交付范式,受到越来越多企业的青睐。了解云原生应用的特征,是高效部署云业务的前提和理论基础,企业架构师能否真正做到生成自我管理、自我保护的云原生系统,了解云原生应用的特征是最关键也是最基本的一步。云原生应用是面向云设计的一种思想理念,也是充分发挥云效能的最佳时间路径,了解云原生应用的主要特性,对于成功构建企业云原生应用是必不可少的。当前,云原生2.0已成为共识,云原生已成为企业降本增效的“代名词”,但是以云计算产业发展的核心方向以及产业赋能的方案需要与时俱进。
2023-04-09 12:39:27
1221
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 什么是云原生应用
云原生应用天生具备云计算基因,具有超强可拓展性,依据云原生立方体拓展模型,按照立方体x、y、z三个维度,云原生应用在x轴的拓展性主要体现在弹性,包括应用使用资源的弹性和应用实例弹性扩展的弹性;云原生应用开发过程需在云上开发,使用云上研发平台和云上技术组件,研发模式一般采用敏捷迭代的方式,云原生的体现在于以DevOps构建云上价值交付流程,自动化研发过程,具有10倍的研发速率,打破组织壁垒实现研发与运维协同,提升交付效率,将规范与安全融入研发过程,实现质量内建,塑造高质量现代化软件。
2023-02-26 12:57:13
225
原创 【问题】容器部署场景Spring Bean偶尔循环依赖问题
在本地开发中不会发生循环依赖问题,但是在容器场景下,制作成镜像启动后异常出现Bean的循环依赖。开发者在代码中使用构造函数注入来引用依赖的 Bean,这种方式可能导致循环依赖问题。虽然 Spring 框架具备循环依赖的处理机制,但它仅适用于通过 @Resource 或 @Autowired 注解进行的 Setter 方法注入或字段注入。如果开发者使用构造函数注入,当Bean的初始化未发生循环依赖,则启动没问题,对应日常开发中不会有循环依赖问题,但是在一些Docker容器场景,则会偶发抛出循环依赖异常。进一步
2024-08-12 00:39:11
724
原创 【问题】浏览器JS对超过17位字段精度失真问题
在 JSON 数据交换中,JavaScript 无法安全地传输超过 17 位的整数。因此,使用字符串来传输这些整数是可靠的做法,因为字符串在传输过程中不会丢失精度。
2024-08-09 19:36:20
683
原创 Colima是Docker Desktop for Mac 免费替代品
Colima是一款基于 Docker 的轻量级开发环境,为开发者提供了一个可靠、可移植的开发环境。Colima 可以在 macOS、Windows 和 Linux 上运行,支持多种编程语言和开发框架。Colima 包含了常用的开发工具和环境,如 PHP、Node.js、Python、Ruby、Go、MySQL、PostgreSQL 等,可以根据需要选择安装。Colima 还支持和 VS Code 集成,提供了一个完整的开发环境。
2023-04-15 19:03:48
1488
1
原创 洞察设计模式的底层逻辑
原文链接:https://mp.weixin.qq.com/s/qRjn_4xZdmuUPQFoWMBQ4Q读后总结文章通过“底层逻辑”思想引入在设计模式的底层逻辑就是“找到变化,封装变化”。文章进一步引出“什么在变化,变化了什么”。文章并没有过多讨论设计模式,而是引出了一种基于业务场景,思考变化,归纳变化,并进一步灵活应用前人的设计经验,设计总结的原则,应对变化。其实设计模式就是经典场景的总结,但是不是唯一,要勤加总结,还可以有更多原则。注意避免潜意识的为了技术而技术,技术一定是应对特殊业务服务,尤其
2022-05-02 09:39:38
296
原创 Java工程师成长路径
学习资料篇入门必学材料【书籍】码出高效-Java开发手册-系统性的理解Java基础「《码出高效:Java开发手册》.pdf」https://www.aliyundrive.com/s/oNcJyu6T5E9【书籍】Java开发手册(黄山版)-Java开发规范要求,必读「Java开发手册(黄山版).pdf」https://www.aliyundrive.com/s/k4WriVFckrP【书籍】Java 8实战-夯实Java基础「Java 8实战.pdf」https://www.aliyund
2022-03-26 18:26:23
1001
原创 架构之道-软件构建的设计方法-读书笔记
元设计方法是一种简单有效的分析与设计的技术,元设计方法=系统设计+项目设计。系统设计:将大系统分解为小模块/小组件的方式,可以为模块/组件的定义(结构、角色和语义)以及交互设计提供指导,输出系统的概要架构。项目设计:针对项目进度、成本和风险进行设计,可以作为系统集成的指导,并匹配相应方案以供执行和跟踪。当架构设计不充分或组织无法承受构建系统的压力的时候,就不应该冒险让团队启动系统的开发。设计的目标:首先满足客户的真实场景需求,同时设计必须是组织或团队能力和约束范围内。设计并不费时,时间紧迫有助于避免
2022-01-02 00:01:40
1236
原创 如何带新同事的思考
如何带新人1.我做你看:在第一阶段可以不做任何东西,但是师傅要把自己做的每一件事的思路讲给他,让他切实的看到师傅的干活过程,在第一阶段主要给徒弟以切实的工作体感2.我指导你做:在第二阶段师傅会逐步设计一些东西,由师傅给出思路和步骤,由徒弟去执行,师傅会频繁的关注徒弟的进展以及阻塞点,并且帮助他疏通,在第二阶段徒弟会逐步的具有执行能力3.你指导我做:在第三阶段师傅会给徒弟指派一些任务主题,徒弟会负责梳理设计和实现思路,由师傅负责完成,师傅会切实支出徒弟思路的偏差和考虑不到位的地方,帮助徒弟锻炼设计能力和
2021-11-25 18:20:22
287
原创 Keycloak 梳理
Keycloak[top]Keycloak为Web应用和Restful服务提供了一站式的单点登录解决方案。它的目标就是让应用的安全管理变得简单,让开发人员可以轻松地保护他们的应用程序和服务。并且Keycloak为登录、注册、用户管理提供了可视化管理界面,你可以借助于该界面来配置符合你需要的安全策略和进行用户管理。主要功能Keycloak实现了业内常见的认证授权协议和通用的安全技术,主要有:浏览器应用程序的单点登录(SSO)。OIDC认证授权。OAuth 2.0。SAML。多租户支持。身
2021-10-29 00:11:50
14629
原创 谈谈产品敏捷研发
产品是美好也是残酷的,产品打磨也是有时会比较痛苦,必经打磨产品才能成型。产品之所以能成为产品立足于产品之林,因其有灵魂,因其具有合适的生态位,产品的生态位在于立足需求场景解决问题的可用性,可用是立足之本,大多数产品的失败正是因为无场景可用。由于产品设计初期往往不能思考的面面俱到,又由于需求或者市场的动态变化、研发过程信息传递中的误差,成型的产品不是完美的,甚至是不能用的。考虑到变化因素,我们不妨拥抱变化,经历至少三次贴近真实使用场景的测试,产品方能达到可用状态。“敏捷开发以用户的需求进化为核心,采用迭代、
2021-10-15 23:49:07
314
原创 关于团队早会
关于早会:1.时间控制在10~15分钟,2.早会重点在于明确任务进展,树立团队聚焦点,形成明确的第二天任务。3.早会前需要提前了解任务进展,提前思考团队的聚焦点,才能在开会时候从容不迫4.注意拒绝笼统的任务或者进展说明,可以通过追问引导的方式进一步明确进展,甚至可以直接以看效果的方式来沟通任务5.注意任务项,每人一般不超过3条,团队的重点任务同样不要超过5条,如果任务头绪过多,应当采取减法,来聚焦6.注意做好任务完成情况的落实,眼见为实,引导团队成员将工作进度透明,可视化...
2021-10-13 23:00:42
173
原创 架构实战体会,结合《蔡学镛:架构的5个观察角度》
架构实战体会,结合《蔡学镛:架构的5个观察角度》架构是结构化的表征,结构重在看 ,会看才能发现其中的别有洞天之美。研究物理结构常常说:“横看成岭侧成峰,远近高低各不同”,通过不同的视角,会有不同的表征,如俯视图、正视图、侧视图,我们会有抽象思维能力(刻意练习),快速形成空间抽象图像。软件架构也是同样的思考方式,需要能够通过多视角观察,才能体会其门道,才能体会架构之美。在我日常的实战中,更多的是关注业务架构(需求)——>产品架构(功能、结构、行为)——>技术架构——>组织架构。重点说一下
2021-10-09 15:45:17
1176
原创 构建逆熵系统的思考
熵增是什么,结合你的系统,聊聊什么是熵增?什么是熵增熵增要首先从热力学定律说起:热力学第一定律:热量可以从一个物体传递到另一个物体,也可以与机械能或其他能量互相转化,但是在转换过程中,能量的总值保持不变能量守恒定律:能量既不会凭空产生,也不会凭空消失,它只会从一种形式转换为另一种形式,或者从一个物体转移到其他物体,而能量的总量保持不变【 理解“熵”的前提,是理解“能量”的价值 】所有事物的存在都有支持它存在的 “能量” ,这些“能量”因为在某段时间内,产生一个方向的作用力,促进事物的存在.
2021-08-29 23:41:43
1103
2
原创 DDD领域设计概念梳理
概念及说明理解领域领域与具体开发技术无关。就是你的软件系统要解决的实际问题相关的所有东西的集合。按问题域理解:每个限界上下文专注于解决某个特定的子域的问题,限界上下文可以理解为问题空间(Problem Space),随着设计和含义的清晰化,限界上下文会迅速的转换为解决方案空间(Solution Space)非常结构清晰的一张图领域的整体概念图限界上下文限界上下文(Bounded context)是一个显式边界(边界:通常是一个子系统或者一个特定团队的工作),领域模型存在于边界之内。建立模
2021-08-21 17:07:25
653
1
原创 前端编译速度优化——ESbuild
本文旨在说明使用ESbuild提升前端编译构建的速度,降低前端编译的CPU开销。目前默认的webpack打包方式,随着工程的持续增大,编译也变得越来越慢,更有甚者,一个项目编译需要3~5分钟,风扇在疯狂的转,流水线已然崩溃……问题现象在前端项目编译时,会使用混淆和压缩技术,webpack默认是使用TerserPlugin,常常会发现编译执行到92%以后会等待很久● Webpack ……chunk asset optimization (92%)TerserPluginTerserPlugin.
2021-08-08 15:42:28
2743
2
原创 谈谈如何画好架构图
参考文章:https://mp.weixin.qq.com/s/2HjvNnfP7bLNQF5xh8PxIQ读如何画好架构图有感架构图是技术传播的经典媒介,画好架构图才可以充分发挥技术传播的价值,具体体现在加速业务的上线速率,提升优秀工程师的工作效率、有助于产品性能优化和用户体验改善等。什么是架构图:架构图是系统结构的表达,表达系统的组成元素以及元素的关联关系所形成的结构。系统架构图通过抽象表示软件系统的整体轮廓和各个组件之间的相互关系和约束边界,表达软件系统的物理和逻辑视图。架构图的本质是架构信
2021-07-19 01:19:09
283
1
原创 谈谈什么是DDD领域设计建模(一)
(1)DDD 是为了解决什么问题?DDD是一种可以拉通多种不同业务角色一起参与复杂业务分析的分析方法,其具有兼顾战略与战术,具有明确的业务边界,符合微服务设计理念的特点。DDD解决了复杂业务场景不易分析,不易统一思路的问题。矛盾论看DDD:业务分析先找到问题域(我们要解决什么问题),再找到主要矛盾(核心子域)以及解决主要矛盾的基础(通用子域),集中精力解决主要矛盾系统设计层面:解决如何微服务如何划分的问题,为划分服务边界提供了一套完备的思路代码实现层面:提供了一套代码规范或者说开发模式,例如:实
2021-07-18 18:59:59
1561
原创 基于qiankun的微前端实践
若干子应用接入问题:1.子应用不能直接对外暴露,如果附着在主应用,如何处理代理2.浏览器的Route路径需要处理,满足既能匹配主项目,又能匹配子项目3.静态资源需要处理,满足可以直接访问到子应用资源的需求4.代理配置时候是否重写访问地址5.使用hash路由还是使用history路由?6.需要做到当浏览器直接访问路由地址,可以打开正确的页面7.子应用访问自己的后端,需要能够被父应用统一管理8.父子应用同步用户登录状态的问题基于nginx代理子应用的实践父应用约束:1.父应用中注册子应用
2021-07-11 23:33:24
477
原创 微服务架构Mysql数据库复用性研究
问题背景:微服务架构下,特别是对于团队众多,项目众多但是资源有限的情况,不能做到每个项目一个数据库实例,那么如何优化Mysql数据库配置来支撑众多微服务大量连接需求的问题?问题现象mysql提示异常too many connections微服务的连接池需求分析Springboot项目默认的连接池需求:以druid为例,默认initialSize核心连接为10个,maxActive最大连接为100个。Mysql的默认连接数:默认连接数是100即在10个以上实例的连接情况下,mysql已经不能.
2021-07-10 17:38:51
303
原创 Istio在虚拟机部署纳管
Istio诞生在kubernetes中,与kubernetes完美的融合同时又是kubernetes在微服务治理方向的补充,其基于PAAS平台基于网络的无侵入的微服务解决方案来构建Service Mesh体系是最大的亮点和价值之处。问题:对于kubernetes以外的机器,特别是在企业微服务改造初期,必然会有一段云上云下共存的时期,在这段时间,一套微服务方案能够兼容和利旧就显得十分有必要。在Istio官方的解决方案中目前可以在两个层面解决这个问题:1.利用VirtualService,将外部服务创建为
2021-02-15 20:38:48
700
原创 ServiceMesh(istio)系统实践
环境说明:本人在Mac Os系统i7、16G下,使用Docker for Mac安装kubernetes随后开展后续的实操。Istio安装安装istioctl基于brew一键安装istioctl是命令操作istio的工具brew install istioctl安装Istio-operatoristio-operator是用来安装部署,自动运维istio的工具istioctl operator init安装Istio-systemkubectl create ns istio-s.
2021-02-15 17:12:18
585
1
原创 RocketMQ核心问题思考
客户端与broker建立的连接机制当长时间断连,当server恢复后,能否自动重连RocketMQ broker 的消息存储机制RocketMQ broker 的消息清理机制RocketMQ broker 的作用RocketMQ namesrv 的作用RocketMQ namesrv、broker的状态分析...
2021-02-05 02:41:37
254
原创 RocketMQ报错提示logics disk maybe full soon, so reclaim space, -1.0
异常信息:disk space will be full soon, but delete file failed.logics disk maybe full soon, so reclaim space, -1.0begin to delete before 72 hours file. timeup: false spacefull: true manualDeleteFileSeveralTimes: 0 cleanAtOnce: false注意:这个问题并不是说明磁盘空间不够,而是因为可
2021-02-05 01:32:19
2008
4
原创 读《我对技术架构的理解与架构师角色的思考》
文章是一篇站在顶层俯瞰架构师角色非常醍醐灌顶的文章,读过后,对于文章中架构师的核心能力、职责、挑战有了更加清晰的认识,下面捡关键点详细展开。文中作者对技术架构的理解分为顶层设计、物理架构、应用架构,顶层设计十分重要,而有顶层设计意识才能开始思考这个问题,能做什么样的顶层设计,体现了这个架构师的Lever层次,顶层设计需要把“要做什么事要定义的非常清楚,要达到什么样的结果也要定义的非常清楚”,这样才能更好的指导他人开展工作,这是大规模系统建设的基础。物理架构主要是逻辑背后真实的结构,架构要想清楚将来的物理.
2021-01-30 19:00:19
1247
3
原创 SpringCloud2020踩坑记
About the annotation @EnableCircuitBreaker in spring cloud 2020异常信息 java.lang.IllegalStateException: Annotation @EnableCircuitBreaker found, but there are no implementations. Did you forget to include a starter?at org.springframework.cloud.commons.util.
2021-01-16 02:07:33
1549
2
原创 RocketMQ关键问题研究
文章目录RocketMQ的基本角色RocketMQ的高可用模式?NameServer有没有状态,为什么?Broker的自动选举高可用部署如果slave先master启动会不会有问题?RocketMQ中关键角色的通信问题(基于容器)?生产者重试机制?消费者的消息重试消息的存储的理解消息消费如何保障幂等?大消息直接进MQ会有什么影响,能不能使用(数kb~数百kb)?Tags的使用和理解Keys的使用和理解日志的打印NameServer内部的数据结构RocketMQ的事务消息是如何消息堆积的能力**消息可靠性理解
2020-08-04 20:56:21
1096
原创 SpringBoot项目——打印项目构建信息
随着Devops的日渐深入,项目的部署越来越频繁,版本更迭越来越快,这些全靠流水线来完成,然而偶尔可能会因为流水线出问题而发生**流水线“执行成功”,而实际代码未更新的问题**,本文不讨论流水线是否有问题,而考虑如何在编译打包过程中,使用springboot-build-info附加项目构建信息,使用git-commit-id-plugin附加git信息,而能够清晰的了解代码是否完成更新
2020-07-29 00:50:01
1972
1
原创 K8S+Helm 安装 Jupyterhub
前提条件:准备好的k8s环境和helm环境准备配置文件生成随机数openssl rand -hex 32# 8fc2826e9ce6930ec26c9fd541c0620b448a947357edbdf9647516af16bbc798配置config.yaml如下,token是上一步生成proxy: secretToken: "8fc2826e9ce6930ec26c9fd541c0620b448a947357edbdf9647516af16bbc798"安装JupyterHub.
2020-07-22 23:50:55
1898
1
原创 解决Mysql8: 2059 – 身份验证插件’caching_sha2_password’-navicat连接异常
这个问题发生在MySQL8版本以上,所有密码默认被设置为caching_sha2_password,弱密码不允许使用解决办法查看默认的认证插件mysql> show variables like 'default_authentication_plugin';查看host,user,pluginmysql> select host,user,plugin from mysql.user;修改user指定host的加密插件为mysql_native_passwordmysql.
2020-06-30 19:23:55
1381
原创 深究一个静态代码块不被执行问题
深究一个静态代码块不被执行问题问题现象:spring环境中的bean 的静态代码块会被自动执行工具类中的静态代码块不被自动执行,工具类第一次被调用时静态代码块执行通过子类调用继承的父类的方法,子类静态代码块不被执行复习ClassLoadJava类加载 会初始化的情况有且仅有以下五种:(也称为主动引用)1.遇到new(用new实例对象),getStatic(读取一个静态字段),putstatic(设置一个静态字段),invokeStatic(调用一个类的静态方法)这四条指令字节码命令时2.
2020-05-22 20:16:02
3762
1
原创 非暴力沟通
非暴力沟通Tags: 刻意练习, 沟通, 非暴力沟通非暴力沟通模式诚实地表达自己,而不批评、指责观察:我所观察(看、听、回忆、想)到的有助于(或无助于)我的福祉的具体行为当我(看、听、想到我看到的/听到的)……感受:对于这些行为,我有什么样的感受(情感而非思想)我感到……需要:什么样的需要或价值(而非偏好或某种具体的行为)导致我那样的感受因为我需要/看着请求:清楚地请求(而...
2020-04-26 00:21:28
427
原创 程序员自我修养——提问的智慧
提问的智慧How To Ask Questions The Smart Way当你拋出一个技术问题时,最终是否能得到有用的回答,往往取决于你所提问和追问的方式。本指南将教你如何正确的提问以获得你满意的答案,教你如何从那些真正懂得你所遇到软件或硬件问题的人取得协助。本文来源自文章目录提问的智慧在提问之前当你提问时慎选提问的论坛Stack Overflow网站和 IRC 论坛第二步,使用项...
2020-03-07 12:27:24
887
1
原创 《架构整洁之道》-心得总结
架构整洁之道的作者是创造“Clean神话”的Bob大叔,作者总结了其数十年的软件从业经历,围绕构建整洁架构展开讨论,系统的分享了整洁架构的方方面面。 架构师要做什么。软件架构的价值可以在两方面体现,一方面是行为价值,其实就是功能性需求,另一方面是架构价值,其价值体现在非功能性需求,对于服务与系统可用性、可维护性、可测试性的追求。架构师作为软件建设的核心负责者,工作也应...
2020-02-09 14:01:37
811
原创 Centos安装手册
安装以Centos系统,包含docker、docker-compose文章目录Docker安装安装Docker-ComposeDocker安装官方参考链接# 安装一些必要工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 添加软件源信息sudo yum-config-manager --add-r...
2020-01-26 19:44:48
189
原创 RocketMQ面面观
RocketMQ面面观Rocket基本概念1 消息模型(Message Model)RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个Topic的消息,每个Topic的消息也可以分片...
2020-01-13 23:09:16
1078
原创 Spring静态注入实现读取配置工具类新方式
核心代码@Componentpublic class PropertiesUtils { private static PropertiesUtils tool; @Autowired private Environment environment; public static String getProperty(String property) { ...
2020-01-11 21:50:52
1423
1
2020-Scrum指南.pdf
2020-12-06
apache-cxf-3.3.5
2020-01-21
Springcloud项目调用dubbo项目.zip
2019-08-27
ApacheDirectoryStudio mac版
2019-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人