如何避免微服务设计中的耦合问题

如何避免微服务设计中的耦合问题 译自:How to Avoid Coupling in Microservices Design Distributed monolith (分布一体式)是一个幽默的词,用来暗指那些设计欠佳的架构。如果忽略了微服务设计实践,不仅会无法克服一体式带来的缺点,也会导致出现 ... »

NLog整合Exceptionless

前言 在实际的.Net Core相关项目开发中,很多人都会把NLog作为日志框架的首选,主要是源于它的强大和它的扩展性。同时很多时候我们需要集中式的采集日志,这时候仅仅使用NLog是不够的,NLog主要是负责代码中日志的落地,也就是收集程序中的日志。类似的使用ELK(Elasticsearch+Lo ... »

边缘认证和与令牌无关的身份传播

边缘认证和与令牌无关的身份传播 翻译自Edge Authentication and Token-Agnostic Identity Propagation。通过本文可以了解到Netflix是如何通过将认证转移到边缘设备来降低系统内容内部的认证流程,以及如何使用统一的认证结构支持系统对身份信息的需求 ... »

微服务架构Day05-SpringBoot之Servlet

旧版 配置嵌入式Servlet容器 SpringBoot默认使用Tomcat作为嵌入式Servlet容器 如何定制和修改Servlet容器相关配置 1.在配置文件中定制和修改Servlet容器有关的配置,本质上是使用SpringBoot的默认的嵌入式Servlet容器的定制器来修改配置. 通用的se ... »

微服务架构Day04-SpringBoot之web开发

引入项目 把html页面放在模板引擎文件夹templates下,这样能使用模板引擎的功能。 登录页面国际化 国际化:编写国际化配置文件 1.编写国际化配置文件,抽取页面需要显示的国际化消息 2.SpringBoot自动配置好了管理国际化资源文件的组件 @Bean @ConfigurationProp ... »

微服务架构Day03-SpringBoot之web开发配置

概述 SpringBoot开发: 1.创建SpringBoot应用,选中需要的场景模块。 2.SpringBoot已经默认将场景模块配置好,只需要在配置文件中指定少量的配置(数据库地址,用户名,密码)就可以运行起来。 3.只需要编写业务逻辑代码。 需要掌握自动配置原理:这个场景中SpringBoot ... »

微服务架构Day03-SpringBoot日志slf4j

日志框架 日志门面(接口,日志抽象层 ) 日志实现 JCL(Jakarta Commons Logging)、slf4j(Simple Logging Facade for Java)、jboss-logging log4j、JUL(java.util.logging)、log4j2、Logback ... »

微服务架构学习Day01-SpringBoot入门

基本概念 SpringBoot的优点: 可以创建独立的Spring应用 SpringBoot嵌入Tomcat,Jetty和Unsertow, 不需要部署war文件 根据需要通过maven获取starter 对Spring进行自动配置 提供生产就绪型功能,包括指标,健康检查和外部配置 SpringBo ... »

带你认识互联网架构的演变过程

单体架构(all in one) 所有模块都在一起,技术也不分层。 在单机上部署所有的应用程序和软件。 所有的代码都写在JSP里面,所有代码都写在一起,这种方式称为all in one。 特点: 1.不具备代码的可维护性。 2.容错性差。(容错性是指软件检测应用程序所运行的软件和硬件中发生的错误并从 ... »

.Net微服务实战之必须得面对的分布式问题

系列文章 .Net微服务实战之技术选型篇 .Net微服务实战之技术架构分层篇 .Net微服务实战之DevOps篇 .Net微服务实战之负载均衡(上) .Net微服务实战之CI/CD .Net微服务实战之Kubernetes的搭建与使用 .Net微服务实战之负载均衡(下) 相关源码:https://g ... »

高性能,高可用,安全的架构

高性能,高可用,安全的架构 高性能: RT(reponse time)时间 高可用: 任何时候项目都必须可用 可升缩: 大促,流量瞬间增大…. 可扩展: 开发角度(新需求进行迭代),扩展 安全性: 网络安全,硬件安全,软件安全 敏捷性: 可持续交付,可持续部署 高性能 什么是高性能? 较短的响应时间 ... »

keycloak集群化的思考

简介 单体服务如果想要突破到高并发服务就需要升级为集群服务。同时集群化也为高可用打下了坚实的基础。纵观现在比较流行的服务或者中间件,不管是RabbitMQ还是redis都提供了集群的功能。 作为硬核工业代表的wildfly也不例外,最近研究了一下keycloak的集群,发现它的底层服务器用的也是wi ... »

.Net微服务实战之负载均衡(下)

系列文章 .Net微服务实战之技术选型篇 .Net微服务实战之技术架构分层篇 .Net微服务实战之DevOps篇 .Net微服务实战之负载均衡(上) .Net微服务实战之CI/CD .Net微服务实战之Kubernetes的搭建与使用 相关源码:https://github.com/SkyChenS ... »

权限系统的基本概念和架构

简介 权限系统是我们在系统设计和应用中一种非常常见的系统。一般来说权限系统的功能分为认证和授权两种。认证就非常简单的,验证完用户名密码就算认证成功,而授权里面的套路就很多了,本文将会详细讲解权限系统中的一些基本概念和设计上面要注意的问题,希望大家能够喜欢。 授权流程 在授权流程中主要有三个部分,分别 ... »

部署Dotnet Core应用到Kubernetes(二)

前一篇文章,概念性地介绍了K8s的一些基础组件,如Pod、部署和服务。这篇文章,我打算写写如何使用YAML清单定义和配置这些资源。 实际上,在K8s集群中创建对象有几种方式 - 命令,或声明。两种方式区别不大。 不过实际应用中,一旦开始真正部署应用,最终都会走到YAML配置文件方式。这种方式也叫配置 ... »

分布式事务说的的2PC、3PC、TCC是啥

2PC(Two Phase Commit) 顾名思义,二阶段提交的意思。 发起事务(Prepare) 事务的发起者提出一个请求(比如下单购买某个商品),要求其依赖的服务响应请求(比如锁定优惠券,冻结库存等等) 当所有的依赖方成都回复确认之后,事务的准备阶段完毕 确认/取消事务(Confirm/Cnc ... »

实时离线一体化在资产租赁saas服务中使用

流水查询需求 需求第一期: 基于TB级的在线数据,支持缴费帐单明细在线查询。大家都知道,像银行帐单流水一样,查几年的流水是常有的事。 支持的维度查询:帐期、欠费状态、日期范围、费用科目类型、房屋分类、房屋所属项目、关联合同信息、统计列 什么是实时数据 实时可以分为:实时采集、实时计算、高性能,底延时 ... »

分布式系统中的CAP、ACID、BASE概念

CAP 分布式系统中,这三个特性只能满足其中两个。 一致性(Consistency):分布式中一致性又分强一致性和弱一致性,强一致性主浊任何时刻任何节点看到的数据都是一样的,弱一致性一* * 般实现的是最终一致性。 可用性(Availability):集群在任何时间内都正常使用 分区容错性(Part ... »

AA.Dapper升级了

AA.Dapper基于dapper进一步封装而成的orm框架,提供增删改查、分页、事务、原生sql的功能,以满足日常的业务开发。 1.Repository层: DapperRepository类包含大部分数据库操作如图: DapperContext.Current.DataBase类支持原生sql, ... »

关于编程的一些核心

一、程序、算法的本质 程序=算法+数结结构 算法=逻辑+控制 程序=算法+数结结构,这个是众所周知了。 算法这个解释比较清丽脱俗:1.逻辑 2. 控制 逻辑用来解决实际的问题, 控制决定用什么策略来解决问题,逻辑是真正意义上的解决问题的算法 业务逻辑,逻辑过程的抽象,加上一个由术语表示的数据结构的定 ... »