基于Zookeeper的服务注册与发现

背景

大多数系统都是从一个单一系统开始起步的,随着公司业务的快速发展,这个单一系统变得越来越庞大,带来几个问题:

  1. 随着访问量的不断攀升,纯粹通过提升机器的性能来已经不能解决问题,系统无法进行有效的水平扩展

  2. 维护这个单一系统,变得越来越复杂

  3. 随着业务场景的不同以及大研发的招兵买马带来了不同技术背景的工程师,在原有达达Python技术栈的基础上,引入了Java技术栈

    查看更多

使用Spring Cloud OAuth2和JWT保护微服务

采用 Spring Security Oauth2JWT 的方式,避免每次请求都需要远程调度 Uaa 服务,Uaa 服务只验证一次,返回JWT。返回的 JWT 包含了用户的所有信息,包括权限信息。

什么是JWT?

JSON Web Token(JWT)是一种开放的标准(RFC 7519),JWT定义了一种紧凑且自包含的标准,该标准旨在将各个主体的信息包装为 JSON 对象。主体信息是通过数字签名进行加密和验证的。常使用 HMAC 算法或 RSA(公钥/私钥的非对称性加密)算法对JWT进行签名,安全性很高。

查看更多

Spring AOP 源码解析

在 Spring 的容器中,我们面向的对象是一个个的 bean 实例,bean 是什么?我们可以简单理解为是 BeanDefinition 的实例,Spring 会根据 BeanDefinition 中的信息为我们生产合适的 bean 实例出来。

当我们需要使用 bean 的时候,通过 IOC 容器的 getBean(…) 方法从容器中获取 bean 实例,只不过大部分的场景下,我们都用了依赖注入,所以很少手动调用 getBean(...) 方法。

查看更多

Spring IOC容器源码解析

Spring 最重要的概念是 IOCAOP,本篇文章其实就是要带领大家来分析下 SpringIOC 容器。既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文并不能让你成为Spring专家,不过一定有助于大家理解Spring的很多概念,帮助大家排查应用中和Spring相关的一些问题。为了降低难度,本文所说的所有的内容都是基于 xml 的配置的方式,实际使用已经很少人这么做了,至少不是纯 xml 配置,不过从理解源码的角度来看用这种方式来说无疑是最合适的。

查看更多

JVM知识总结

如何提升个人的专业能力?你可以Google搜一下,什么架构师之道呀、深入解读Spring源码呀等等等。我想说讲的都没错,技术的提升没有捷径,牛人指导我们学习线路,真正能让我们突破迷茫期,提升个人实力的还是得靠自己。当然有人带和没人带区别还是很大的。如果你觉得现在的工资很满意,平时上班也没什么压力,生活很惬意,不想提高个人实力,不想变成我们心中的大神牛人,那么恭喜你,有类标签很适合,佛系程序员。

查看更多

使用 ELK(Elasticsearch + Logstash + Kibana) 搭建日志收集分析平台

前言

Elasticsearch + Logstash + Kibana(ELK)是一套开源的日志管理方案,分析网站的访问情况时我们一般会借助 Google / 百度 / CNZZ 等方式嵌入 JS 做数据统计,但是当网站访问异常或者被攻击时我们需要在后台分析如 Nginx 的具体日志,而 Nginx 日志分割 / GoAccess/Awstats 都是相对简单的单节点解决方案,针对分布式集群或者数据量级较大时会显得心有余而力不足,而 ELK 的出现可以使我们从容面对新的挑战。

查看更多