63 天前 / hyper0x
IOC(inversion of control)即控制反转,是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。IOC-golang 是一款服务于 Go 语言开发者的依赖注入框架,基于控制反转思路,方便开发人员搭建任何 Go 应用。在本文中,我不会罗列这个项目的种种功能与实现,而是站在开发者的角度,谈一谈我认为 Go 应用开发的“理想姿态”。 项目背景 在面向对象编程的思路下,开发者需要直接关心对象之间的依赖关系、对象的加载模型、对象的生命周期等等问题。
166 天前 / 35岁程序员那些事
可以参与抽奖,获取免费的技术书籍喔 参与方式 关注公众号:35 岁程序员那些事,后台回复关键词“参与抽奖”,获取抽奖链接,点击抽奖。中奖之后,可以联系笔者的微信号或者公众号后台回复关键词“联系笔者”,获取联系方式。 当我们在业务服务中需要动态更新配置信息时,就需要引入分布式配置中心,那么市面上开源的分布式配置中心有很多,那么我们该选择哪些呢?比如 Nacos、Apollo 以及 Disconf 等等。 作为一个技术人,都会有技术的选择性综合症,换句话说就是“技术太多了,我们眼花了”。
202 天前 / 35岁程序员那些事
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案,它是 Spring Cloud 组件被植入 Alibaba 元素之后的产物。利用 Spring Cloud Alibaba,可以快速搭建微服务架构并完成技术升级。中小企业如果需要快速落地业务中台和技术中台,并向数字化业务转型,那 Spring Cloud Alibaba 绝对是一个“神器”。 本系列将带着大家一起鸟瞰 Spring Cloud Alibaba 注册中心,从而熟悉它的注册中心架构及相关原理。
203 天前 / 35岁程序员那些事
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案,它是 Spring Cloud 组件被植入 Alibaba 元素之后的产物。利用 Spring Cloud Alibaba,可以快速搭建微服务架构并完成技术升级。中小企业如果需要快速落地业务中台和技术中台,并向数字化业务转型,那 Spring Cloud Alibaba 绝对是一个“神器”。 什么是 Spring Cloud Alibaba 好吧我们先看看 Spring Cloud Alibaba 的官网,如下图所示。 从图中就可以看出,Spring Cloud Alibaba 是 Spring Cloud 的子项目,好吧,这两项目一开始的定位就是父子关系。
204 天前 / 35岁程序员那些事
Spring Cloud Alibaba 是阿里巴巴开源组织开源的一款,用于服务于微服务架构的基础中间件框架。 从框架演变的角度去分析,开发人员大致经历了 Spring Framework、Spring Boot 和 Spring Cloud。 01 服务注册与服务订阅 作为微服务框架,最基础的功能就是服务注册与服务订阅。Spring Cloud Alibaba 是一款基础中间件,那么他又是如何实现服务注册与服务发现的。 具体模块实现如下: spring-cloud-starter-alibaba-nacos-discovery spring-cloud-starter-dubbo 02 基本功能原理 熟悉 Nacos 框架原理的开发者都知道...
239 天前 / 三分恶
源码地址:https://gitee.com/fighter3/eshop-project.git 持续更新中…… 大家好,我是老三,断更了半年,我又滚回来继续写这个系列了,还有人看吗…… 在前面的章节中,我们使用 Fegin 完成了服务间的远程调用,实际上,在更加注重性能的互联网公司中,一般都会使用 RPC 框架,如 Dubbo 等,来实现远程调用。 这一节,我们就来把我们的服务间调用从 Feign 改造成 Dubbo。 1.Dubbo 简介 Architecture- 来自官网 Apache Dubbo 是一款微服务开发框架,它提供了 RPC 通信与微服务治理两大关键能力。
448 天前 / 博文视点Broadview
Spring Cloud 自 2015 年 3 月推出之后,很快就在 Java 微服务生态中,成为开发人员的首选技术栈。 Spring Cloud 在 Spring Boot 的基础上,保留 Java 开发习惯,加入分布式特性,提供了一系列通用工具来帮助开发者在分布式系统里快速构建一些常见模式,现在已成为使用范围最广的微服务架构之一。 2017 年,阿里基于 Spring Cloud 推出的 Spring Cloud Alibaba 正式入驻 Spring Cloud 孵化器,并在 2019 年 7 月正式毕业。目前在 Github 上,也已经有超过 13000 个项目使用了 Spring Cloud Alibaba。
634 天前 / JAVA日知录
今天内容主要是解决一位粉丝提的问题:如何在 jwt 中添加用户的额外信息并在资源服务器中获取这些数据。 涉及的知识点有以下三个: 如何在返回的 jwt 中添加自定义数据如何在 jwt 中添加用户的额外数据,比如用户 id、手机号码如何在资源服务器中取出这些自定义数据下面我们分别来看如何实现。 如何在返回的 jwt 中添加自定义数据这个问题比较简单,只要按照如下两步即可: 编写自定义 token 增强器 packagecom.javadaily.auth.security; importorg.springframework.security.oauth2.common.DefaultOAuth2AccessToken; importorg.springframework.securit...
652 天前 / JAVA日知录
在之前的项目中我们已经实现了使用 Feign 调用远程接口,本章内容主要是借助 sentinel 实现 Feign 接口熔断器功能。 概述首先我们看看不使用熔断器的情况下调用一个没有启动的服务会出现什么效果,然后再来看看使用 sentinel 熔断器后的效果。 如上,我们使用 order-service 中 FeignController 调用 account-service 中的接口,在没启用熔断器的情况下,接口会抛出 500 异常。 实现使用 sentinel 实现熔断器很简单,简单几步即可。
793 天前 / CainGao0
前一篇文章中我们已经完成了 Sentinel 限流的一个程序,通过 Dashboard 进行 Sentinel 的限流配置。不知道大家有没有发现我们在使用 Sentinel Dashboard 的时候它本身是没有数据库的。所以它在重启之后就会丢失我们配置的限流等规则。所以我们需要把限流的规则持久化一下。 在之前我们都会通过配置文件来管理相关的配置信息,但是我们之前已经用 Nacos 实现了集中化的配置管理。所以,这次我们也同样使用 Nacos 来实现 Sentinel 规则的配置管理。
797 天前 / CainGao0
大概有半个月没有进行更新了,确实也在纠结一些 SpringCloudAlibaba 的使用场景问题。同时基于当前的业务与人员配置来考虑甚至有点想放弃微服务的方案了。 Sentinel 的限流降级是必不可少的场景,其实也是基于当前的业务考虑是否需要 Sentinel。 以上的考虑核心问题就是人员配置的问题,当前我们负责该项目的人员较少,资源较少。所以才有所感 但是最终肯定是需要 Sentinel 的场景的,还是直接一步到位吧 Setinel 的基本概念与使用场景 Setinel 的介绍为「一个高可用的流量控制与防护组件」。
818 天前 / CainGao0
前一篇已经写到了利用 Nacos 作为配置中心来构建一个项目,毕竟需求有很大一部分的比重就是配置中心。所以就先利用 Nacos 构建了基于配置中心的项目。 Nacos 作为注册中心是更加常用的。下面创建项目注册到 Nacos 中。 服务提供者创建一个项目作为服务的提供者 「nacos-discovery-http-provider」maven 引入相关依赖 com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-actuator ...
828 天前 / CainGao0
前一篇提到了我们为什么要替换 PHP 语言采用 Java 语言。而 Java 语言的框架选型上来说有太多的选择,常见的有 Dubbo,SpringCloud 等。我们选择了 SpringCloud Alibaba。替换 PHP 语言到 SpringCloudAlibaba 是个大工程,主要是业务迁移部分。讨论之初我也确认过是否迁移原有的业务,得到的明确答复是 迁移。那么这么来说也就简单了,复杂的就是工期问题了。 SpringCloudAlibaba 是什么?SpringCloud Alibaba 是 Alibaba 结合自身的微服务实践开源的一套微服务全家桶,在 SpringCloud 项目中进行孵化并且毕业。
1154 天前 / 猿天地
作者:亦山札记 ID:louluan_note 0.前言 笔者最近打算使用Sentinel替换掉之前的Hystrix作为微服务架构的熔断/断路组件。整体上,Sentinel的设计比Hystrix要易用很多。在实际使用的过程中,也存在了一些问题。本文将介绍Sentinel 在处理RESTful 风格的web项目过程中存在的问题。 问题描述: 在Spring Cloud架构下,如果Http请求格式是按照RESTful风格设计的,当大规模的Http请求访问系统集群,Sentinel Dashboard的实时监控和簇点链路的记录数非常多;看到的资源名已经飙到了几千条之多!另外虽然资源名数量庞大,但是监控的TPS和并发数却非常低...
1186 天前 / 横云断岭
Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。 Github: https://github.com/alibaba/arthas 文档:https://alibaba.github.io/arthas Arthas 3.1.1版本主要是小幅改进,下面介绍要点: trace命令打印行号以arthas-demo为例: $tracedemo.MathGameprimeFactors PressQorCtrl+Ctoabort. Affect(class-cnt:1,method-cnt:1)costin124ms. `---ts=2019-05-1714:46:29;thread_name=main;id=1;is_daemon=false;priority=5;[email protected] `---[3.543169ms]demo.MathGame:primeFactors() +---[0.038383ms]j...