一.RocketMQ简介   RocketMQ作为一款纯java.分布式.队列模型的开源消息中间件,支持事务消息.顺序消息.批量消息.定时消息.消息回溯等. 二.RocketMQ架构   如图所示为RocketMQ基本的部署结构,主要分为NameServer集群.Broker集群.Producer集群和Consumer集群四个部分.   Broker在启动的时候会去向NameServer注册并且定时发送心跳,Producer在启动的时候会到NameServer上去拉取Topic所属的Broker…
RabbitMQ官网: http://www.rabbitmq.com/ Erlang官网:https://www.erlang.org 友情提示:RabbitMQ基于Erlang语言开发的,要想使用RabbitMQ的话,需要先安装Erlang环境 1.RabbitMQ是什么   RabbitMQ是消息代理:它接受并转发消息.可以将它视为邮局:当你投递邮件到一个邮箱,邮递员终究会将邮件递交给你的收件人.以此类推,RabbitMQ可以是一个邮箱,一个邮局和一个邮递员.   RabbitMQ与邮局之…
手把手带你将自己打造的类库丢到 NuGet 上 序 我们习惯了对项目右键点击“引用”,选择“管理NuGet 程序包”来下载第三方的类库,可曾想过有一天将自己的打造的类库放到 NuGet 上,让第三者下载. 图1 目录 注册 NuGet 账号 下载 NuGet 包资源管理器 使用 NuGet 包资源管理器 获取 Publish Key 效果图 一.注册 NuGet 账号 进入官方地址:https://www.nuget.org/,选择“Register”注册账号 ... ... 图1-1 二.下载…
写在前面: 本篇可能是手把手自定义view系列最后一篇了,实际上我也是一周前才开始真正接触自定义view,通过这一周的练习,基本上已经熟练自定义view,能够应对一般的view需要,那么就以本篇来结尾告一段落,搞完毕设的开题报告后去学习新的内容. 有人对我说类似的效果网上已经有了呀,直接拿来就可以用,为什么还要写.我个人的观点是:第三方控件多数不能完全满足UI的要求,如果需要修改,那么必须理解他的实现,所以很有必要自己去写一款出来,成为程序的创造者,而不单单是使用者.所以,写一写已经实现的效果,…
  前言 在 Android开发中,性能优化策略十分重要 本文主要讲解性能优化中的内存优化,希望你们会喜欢 目录   1. 定义 优化处理 应用程序的内存使用.空间占用 2. 作用 避免因不正确使用内存 & 缺乏管理,从而出现 内存泄露(ML).内存溢出(OOM).内存空间占用过大 等问题,最终导致应用程序崩溃(Crash) 3. 储备知识:Android 内存管理机制 3.1 简介   下面,将针对回收 进程.对象 .变量的内存分配 & 回收进行详细讲解 3.2 针对进程的内存策略 a.…
前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将手把手带你深入剖析Retrofit v2.0的源码,希望你们会喜欢 在阅读本文前,建议先阅读文章:这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解) 目录 1. 简介 特别注意: 准确来说,Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装. 原因:网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责…
从零开始入门 K8s | 手把手带你理解 etcd https://zhuanlan.zhihu.com/p/96721097 导读:etcd 是用于共享配置和服务发现的分布式.一致性的 KV 存储系统.本文从 etcd 项目发展所经历的几个重要时刻开始,为大家介绍了 etcd 的总体架构及其设计中的基本原理.希望能够帮助大家更好的理解和使用 etcd. 一.etcd 项目的发展历程 etcd 诞生于 CoreOS 公司,它最初是用于解决集群管理系统中 OS 升级的分布式并发控制以及配置文件的存…
参考文档: http://jm.taobao.org/2017/01/12/rocketmq-quick-start-in-10-minutes/ http://rocketmq.apache.org/docs/quick-start/ https://www.jianshu.com/p/824066d70da8 https://www.jianshu.com/p/453c6e7ff81c https://www.infoq.cn/article/l*fg5StAPoKiQULat0SH 写在最…
前言 大家好,这一篇文章是MyBatis系列的最后一篇文章,前面两篇文章:手把手带你阅读Mybatis源码(一)构造篇 和 手把手带你阅读Mybatis源码(二)执行篇,主要说明了MyBatis是如何将我们的xml配置文件构建为其内部的Configuration对象和MappedStatement对象的,然后在第二篇我们说了构建完成后MyBatis是如何一步一步地执行我们的SQL语句并且对结果集进行封装的. 那么这篇作为MyBatis系列的最后一篇,自然是要来聊聊MyBatis中的一个不可忽视的…
作者:HelloGitHub-小鱼干 摘要:手把手带你学知识,应该是学习新知识最友好的姿势了.toyDB 虽然作为一个"玩具"项目不能应用在实际开发中,但通过它你可以了解到如何制作一个分布式数据库相关的协议等.同样友好的还有在 abstreet 小游戏中带你了解城市微小变化会导致的交通问题.说到了解问题,就不得不提 fgprof 这个知名 Go 开发者开源的性能采样工具,还有 Google 刚开源的漏洞检测小能手 Tsunami. 以下内容摘录自微博@HelloGitHub 的 Git…
wNlRGd.png 前言 本文已经收录到我的 Github 个人博客,欢迎大佬们光临寒舍: 我的 GIthub 博客 学习导图 image.png 一.为什么要尝鲜 harmonyos? wNlfxI.png 9月10日,华为在 HDC 2020 大会上宣布正式开源鸿蒙操作系统(HarmonyOS)2.0,并进入开放原子开源基金会,源码地址:https://openharmony.gitee.com ,一共有134个仓库. 一经发布,便引起国内外广大开发者们的激烈讨论,知乎也冲上了热一,我所在…
转: Java开发不懂Docker,学尽Java也枉然,阿里P8架构师手把手带你玩转Docker实战 Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口. 一个完整的Docker有以下几个部分组成: dockerClient客户端 Docker Daemon守护进程 Docker Image镜像 DockerContainer容器…
前言 后悔,总之就是非常后悔,我当时到底是为啥才会猪油蒙心,选择了 EFR32 来学习 ZigBee 使用啊? EFR32 这玩意看性能确实不错,但是资料太少了,EmberZnet SDK 也是用得一头雾水.能找到的教程和例子基本是都是控制一下LED ,配置入网啥的,具体的涉及常用的ADC,I2C什么的资料太难找了,SDK 里面也没有找到类似demo的东西,总之就是非常痛苦. 这里给大家分享一些好东西!EFR32和EFM32 非常全面的驱动示例 demo 这玩意救我狗命啊!国内不知道为啥都没有人…
HashMap源码深度剖析,手把手带你分析每一行代码! 在前面的两篇文章哈希表的原理和200行代码带你写自己的HashMap(如果你阅读这篇文章感觉有点困难,可以先阅读这两篇文章)当中我们仔细谈到了哈希表的原理并且自己动手使用线性探测法实现了我们自己的哈希表MyHashMap.在本篇文章当中我们将仔细分析JDK当中HashMap的源代码. 首先我们需要了解的是一个容器最重要的四个功能 增删改查 ,而我们也是主要根据这四个功能进行展开一步一步的剖析HashMap的源代码.在正式进行源码分析之前,先…
前言 RocketMQ是一款分布式.队列模型的消息中间件,由阿里巴巴自主研发的一款适用于高并发.高可靠性.海量数据场景的消息中间件.早期开源2.X版本名为MetaQ:2015年迭代3.X版本,更名为RocketMQ,2016年贡献给Apache,经过一年多的孵化,最终成为Apache的顶级开源项目之一.RocketMQ是在Kafka的基础上发展起来的,它的诞生参考借鉴了Apache Kafka(后面的文章我会单独介绍Kafka).起因是随着阿里巴巴业务的发展,他们发现Kafka对于具体的业务场景…
https://blog.csdn.net/jiangyu1013/article/details/81668671 消息中间件的作用 1. 应用解耦 2. 异步处理 比如用户注册场景,注册主流程完成以后,需要调用邮件系统发送邮件通知用户注册成功,可能还需要调用其他系统.这是串行的,如果一个系统依赖很多系统,那么这个主流程会比较长,耦合度高,整个系统维护成本也会越来越高.那么我们就可以使用消息中间件来进行解耦,通过发布订阅模式,完成用户注册之后,向中间件发送消息,这样就可以马上给用户返回,至于后…
阅读这篇文章之前,建议先阅读和这篇文章关联的内容. 1. 详细剖析分布式微服务架构下网络通信的底层实现原理(图解) 2. (年薪60W的技巧)工作了5年,你真的理解Netty以及为什么要用吗?(深度干货) 3. 深度解析Netty中的核心组件(图解+实例) 4. BAT面试必问细节:关于Netty中的ByteBuf详解 5. 通过大量实战案例分解Netty中是如何解决拆包黏包问题的? 6. 基于Netty实现自定义消息通信协议(协议设计及解析应用实战) 7. 全网最详细最齐全的序列化技术及深度解…
先来看看最终的效果~~ 本文同步至博主的私人博客wing的地方酒馆 嗯..一个是头像上移的 另一个是模仿UC浏览器的. (PД`q.)你不是说!有三款的吗,怎么只有两款!!!! 不要急嘛... 说了从简到难,第一款是介绍概念的啦. 关于CoordinatorLayout,以及系统预留ScrollBehavior使用网上以及有很多文章,这里就不阐述了,如果你还不了解,你可以查看[译]掌握CoordinatorLayout 基础概念 其实Behavior就是一个应用于View的观察者模式,一个Vie…
先来看看最终的效果~~ 本文同步至博主的私人博客wing的地方酒馆 嗯..一个是头像上移的 另一个是模仿UC浏览器的. (PД`q.)你不是说!有三款的吗,怎么只有两款!!!! 不要急嘛... 说了从简到难,第一款是介绍概念的啦. 关于CoordinatorLayout,以及系统预留ScrollBehavior使用网上以及有很多文章,这里就不阐述了,如果你还不了解,你可以查看[译]掌握CoordinatorLayout 基础概念 其实Behavior就是一个应用于View的观察者模式,一个Vie…
分享一则最近流行的笑话: 最新科学研究表明:寒冷可以使人保持年轻,楼下的王大爷表示虽然今年已经60多岁了,但是仍然冷的跟孙子一样. 呃.好吧,这个冬天确实有点冷,在广州活生生的把我这个原生北方人,冻成一条狗.(研究表明:寒冷可以让人类基因突变....) 好了不扯了.前些日子有朋友让我写博客来分析一下这个仿MIUI的时钟,从中学到了一些炫酷效果的实现. 本项目地址:https://github.com/githubwing/compassView 那么是啥3D效果呢,先来看看效果图,额..有好多个…
嗯..再差1篇就可以获得持之以恒徽章了,今天带大家画一个比较简单的view. 转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50477108 废话不多说,看效果图: 首先 构造函数 测量... 这里就一笔带过了. public ErrorView(Context context) { this(context, null); } public ErrorView(Context context, AttributeSet attrs…
拿到美工效果图,咱们程序员就得画得一模一样. 为了不被老板喷,只能多练啊. 听说你觉得前面几篇都so easy,那今天就带你做个相对比较复杂的. 转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50468674 注意:每一篇博客都是建立在之前博客的基础知识上的,如果你刚接触自定义view.可以来说说自定义view简单学习的方式这里看我以前的文章.记录了我学习自定义view的过程,而且前几篇博客或多或少犯了一些错误(重复绘制,onDra…
本文已授权微信公众号<鸿洋>原创首发,转载请务必注明出处. 概述 相机差点儿是每一个APP都要用到的功能,万一老板让你定制相机方不方?反正我是有点方. 关于相机的两天奋斗总结免费送给你. Intent intent = new Intent(); intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE); startActivity(intent); 或者指定返回图片的名称mCurrentPhotoFile. Intent intent = new I…
拿到美工效果图.咱们程序猿就得画得一模一样. 为了不被老板喷,仅仅能多练啊. 听说你认为前面几篇都so easy,那今天就带你做个相对照较复杂的. 转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50468674 注意:每一篇博客都是建立在之前博客的基础知识上的,假设你刚接触自己定义view.能够来说说自己定义view简单学习的方式这里看我曾经的文章.记录了我学习自己定义view的过程,并且前几篇博客或多或少犯了一些错误(反复绘制,o…
本文来自网易云社区 作者:王晨彦 前言 热修复和插件化是目前 Android 领域很火热的两门技术,也是 Android 开发工程师必备的技能. 目前比较流行的热修复方案有微信的 Tinker,手淘的 Sophix,美团的 Robust,以及 QQ 空间热修复方案. QQ 空间热修复方案使用Java实现,比较容易上手. 如果还不了解 QQ 空间方案的原理,请先学习安卓App热补丁动态修复技术介绍 今天,我们就基于 QQ 空间方案来深入学习热修复原理,并且手把手完成一个热修复框架. 本文参考了 N…
. 简介 即 ML (Memory Leak)指 程序在申请内存后,当该内存不需再使用 但 却无法被释放 & 归还给 程序的现象2. 对应用程序的影响 容易使得应用程序发生内存溢出,即 OOM 内存溢出 简介: 示意图3. 发生内存泄露的本质原因 具体描述示意图 特别注意 从机制上的角度来说,由于 Java存在垃圾回收机制(GC),理应不存在内存泄露:出现内存泄露的原因仅仅是外部人为原因 = 无意识地持有对象引用,使得 持有引用者的生命周期 > 被引用者的生命周期4. 储备知识:Androi…
在写代码的时候,经常遇到自定义的style,有的用来设置属性,有的用来设置主题,搞的自己云里雾里,因此在心底暗暗发誓,等到空闲的时候,一定好好学学android中的style的究竟是个什么东西,到底有什么用处.于是今天来了机会,到网上学习了一个别人写的相关的文章.虽然有的地方还是有些不太懂,但是起码算是对style有了一个初步的理解和使用.在此,特别记录下自己的学习收获,好记性不如烂笔头.由于本人是初学者,文中如果有不合理的地方,恳请大家批评指正.android进阶的道路上,一起坚持学习! 一.…
一.OpenStack初探 1.1 OpenStack简介 OpenStack是一整套开源软件项目的综合,它允许企业或服务提供者建立.运行自己的云计算和存储设施.Rackspace与NASA是最初重要的两个贡献者,前者提供了“云文件”平台代码,该平台增强了OpenStack对象存储部分的功能,而后者带来了“Nebula”平台形成了OpenStack其余的部分.而今,OpenStack基金会已经有150多个会员,包括很多知名公司如“Canonical.DELL.Citrix”等. 1.2 Open…
目录 本文目录 一.什么是事务传播行为? 二.事务的7种传播行为 三.7种传播行为实战 本文介绍Spring的七种事务传播行为并通过代码演示下. 本文目录 一.什么是事务传播行为? 事务传播行为(propagation behavior)指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何运行. 例如:methodA方法调用methodB方法时,methodB是继续在调用者methodA的事务中运行呢,还是为自己开启一个新事务运行,这就是由methodB的事务传播行为决定的. 二.…
前言 上一篇文章提到了MyBatis是如何构建配置类的,也说了MyBatis在运行过程中主要分为两个阶段,第一是构建,第二就是执行,所以这篇文章会带大家来了解一下MyBatis是如何从构建完毕,到执行我们的第一条SQL语句的.之后这部分内容会归置到公众号菜单栏:连载中…-框架分析中,欢迎探讨! 入口(代理对象的生成) public static void main(String[] args) throws Exception { /******************************构…