host

Android 全面插件化 RePlugin 流程与源码解析

妖精的绣舞 提交于 2019-12-23 21:32:00
转自 Android 全面插件化 RePlugin 流程与源码解析 RePlugin,360开源的全面插件化框架,按照官网说的,其目的是“尽可能多的让模块变成插件”,并在很稳定的前提下,尽可能像开发普通App那样灵活。那么下面就让我们一起深入♂了解它吧。 (ps :阅读本文请多参考源码图片 ( ̄^ ̄)ゞ ) 一、介绍   RePlugin对比其他插件化,它的强大和特色,在于它只Hook住了ClassLoader。One Hook这个坚持,最大程度保证了稳定性、兼容性和可维护性,详见 《全面插件化——RePlugin的使命》 。当然,One Hook也极大的提高了实现复杂程度性,其中主要体现在: 增加了Gradle插件脚本,实现开发中自动代码修改与生成。 分割了插件库和宿主库的代码实现。 代码中存在很多不少 @deprecated 、 TODO 和临时修改。 初始化、加载、启动等逻辑比较复杂。 图一 Replugin项目结构   本篇将竭尽所能,为各位介绍其流程和内部实现,如果存在一些地方存在纰漏,还请指出。文章篇幅较长,需耐心阅读,阅读时可结合图片源码,同时欢迎收藏,或选择感兴趣点阅读,下面主要涉及: 二、ClassLoader基础知识。 三、Replugin项目原理和结构分析。 四、Replugin的ClassLoader。 五、Replugin的相关类介绍。 六

Springboot整合rabbitMq

喜你入骨 提交于 2019-12-23 20:59:45
该篇文章内容较多,包括有rabbitMq相关的一些简单理论介绍,provider消息推送实例,consumer消息消费实例,Direct、Topic、Fanout的使用,消息回调、手动确认等。 (但是关于rabbitMq的安装,就不介绍了) 在安装完rabbitMq后,输入http://ip:15672/ ,是可以看到一个简单后台管理界面的。 在这个界面里面我们可以做些什么? 可以手动创建虚拟host,创建用户,分配权限,创建交换机,创建队列等等,还有查看队列消息,消费效率,推送效率等等。 以上这些管理界面的操作在这篇暂时不做扩展描述,我想着重后面实例里会使用到。 首先先介绍一个简单的一个消息推送到接收的流程,提供一个简单的图: RabbitMq -JCccc黄色的圈圈就是我们的消息推送服务,将消息推送到 中间方框里面也就是 rabbitMq的服务器,然后经过服务器里面的交换机、队列等各种关系(后面会详细讲)将数据处理入列后,最终右边的蓝色圈圈消费者获取对应监听的消息。 常用的交换机有以下三种,因为消费者是从队列获取信息的,队列是绑定交换机的(一般),所以对应的消息推送/接收模式也会有以下几种: Direct Exchange 直连型交换机,根据消息携带的路由键将消息投递给对应队列。 大致流程,有一个队列绑定到一个直连交换机上,同时赋予一个路由键 routing key 。

MHA高可用群集基本部署(纯实战)

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-23 17:04:50
MHA高可用群集基本部署 MHA概述 MHA目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发。 MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。 MHA还提供在线主库切换的功能,能够安全地切换当前运行的主库到一个新的主库中(通过将从库提升为主库),大概0.5-2秒内即可完成。 基本部署实验流程 一、实验前期准备 名称 角色 地址 centos7-2 master 192.168.142.203 centos7-3 slave1 192.168.142.132 centos7-min slave2 192.168.142.172 centos7-4 manger(监控端) 192.168.142.136 二、开始实验 1、所有服务器环境准备 安装epel源(不进行检查) [root@manger ~]# yum -y install epel-release --nogpgcheck 安装环境包 [root@manger ~]# yum -y install \ perl-DBD-MySQL \ perl-Config

UnknownHostException in android

一世执手 提交于 2019-12-23 12:17:28
问题 When i run my application for sometime, suddenly the network is getting disconnected and i am getting the unknownhostexception in my application. In that case if i check the browser, the same exception occurs.I don't know why internet is getting disconnected suddenly. It works fine only if i re start the emulator again. If any one knows and provides the solution, it will be very much helpful for everyone. 回答1: See the below link: http://hubpages.com/hub/Tips-to-solve-the-UnknownHostException

实例讲解Nginx下的rewrite规则

主宰稳场 提交于 2019-12-23 10:42:55
一.正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 二.文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在目录 * -e和!-e用来判断是否存在文件或目录 * -x和!-x用来判断文件是否可执行 三.rewrite指令的最后一项参数为flag标记,flag标记有: 1.last 相当于apache里面的[L]标记,表示rewrite。 2.break本条规则匹配完成后,终止匹配,不再匹配后面的规则。 3.redirect 返回302临时重定向,浏览器地址会显示跳转后的URL地址。 4.permanent 返回301永久重定向,浏览器地址会显示跳转后的URL地址。 使用last和break实现URI重写,浏览器地址栏不变。而且两者有细微差别,使用alias指令必须用last标记;使用proxy_pass指令时,需要使用break标记。Last标记在本条rewrite规则执行完毕后,会对其所在server{......}标签重新发起请求,而break标记则在本条规则匹配完成后,终止匹配。 例如:如果我们将类似URL/photo/123456 重定向到/path/to/photo/12/1234/123456.png rewrite "/photo/(

Android - how to point the emulator / device to use MacOS system hosts file?

荒凉一梦 提交于 2019-12-23 05:19:26
问题 I need for the emulator to use the etc/hosts file on my mac. Is it possible to do that? Could I be pointed to links / blogs? 回答1: According to developer documentation in the section titled "Configuring the Emulator's DNS Settings": On Linux and OS X, the emulator obtains the DNS server addresses by parsing the file /etc/resolv.conf. On Windows, the emulator obtains the addresses by calling the GetNetworkParams() API. Note that this usually means that the emulator ignores the content of your

Spring Integration. Unknown host and tcp-connection-factory

假装没事ソ 提交于 2019-12-23 04:52:08
问题 I'm implementing the TCP client using the Spring Integration. The requirements are: 1. Through the UDP connection (from somewhere) receive the ip or host address of the TCP server. 2. Open TCP connection to the server, to the destination host from previous step and send some business data to this server. I use the Spring Integration framework, version "2.2.0.RELEASE", and the problem is that in the default configuration of the tcp-connection-factory the host attribute should be "hardcoded" in

CentOS 下安装python 之MySQLdb

孤街醉人 提交于 2019-12-23 04:35:16
yum -y install mysql-devwget http://downloads.sourceforge.net/project/mysql-python/mysql-python-test/1.2.4b4/MySQL-python-1.2.4b4.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmysql-python%2F&ts=1364895531&use_mirror=nchc tar zxvf MySQL-python-1.2.4b4.tar.gz cd MySQL-python-1.2.4b4 python setup.py build python setup.py install urllib2.URLError: <urlopen error [Errno 110] Connection timed out> 像报了这样的错,多试几次,网络请求超时了 如果 报EnvironmentError: mysql_config not found 版本是2.7.3 此时执行 find / -name mysql_config 在/usr/bin/下发现了这个文件 然后修改MySQL-python-1.2.3目录下的site.cfg文件 去掉mysql_config=XXX这行的注释,并改成mysql

Django之视图

半城伤御伤魂 提交于 2019-12-23 03:21:34
Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 无论视图本身包含什么逻辑,都要返回响应。 代码写在哪里也无所谓,只要它在你当前项目目录下面。 除此之外没有更多的要求了——可以说“没有什么神奇的地方”。 为了将代码放在某处,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为 views.py 的文件中。 一个简单的视图 下面是一个以HTML文档的形式返回当前日期和时间的视图: from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html) 让我们来逐行解释下上面的代码: 首先,我们从 django.http 模块导入了 HttpResponse 类,以及Python的 datetime 库。 接着,我们定义了 current_datetime 函数。

Linux实用 Shell

两盒软妹~` 提交于 2019-12-23 00:47:05
多个 Host 运行 jps: #!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 for i in root@hadoop1-host root@hadoop2-host root@hadoop3-host root@hadoop4-host root@hadoop5-host do echo "=================== $i ======================" ssh $i '/home/java/jdk1.8.0_171/bin/jps' done 一键复制文件到多个 Host: #!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 pcount = $ # if (( pcount == 0 )) ; then echo no args ; exit ; fi #2 获取文件名称i p1 = $1 fname = ` basename $p1 ` echo fname = $fname #3 获取上级目录到绝对路径 pdir = ` cd -P $( dirname $p1 ) ; pwd ` echo pdir = $pdir #4 获取当前用户名称 user = ` whoami ` #5 循环 for (( num = 2 ; num <= 5 ; num ++ )) ; do echo --------