12月20
首先从以下几点来介绍:
1.为什么要使用synchronized

在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的变化可见(可见性),即可以代替volatile。

2.实现原理

synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性

3.synchronized的三种应用方式

Java中每一个对象都可以作为锁,这是synchronized实现同步的基础:

普通同步方法(实例方法),锁是当前实例对象 ,进入同步代码前要获得当前实例的锁
静态同步方法,锁是当前类的class对象 ,进入同步代码前要获得当前类对象的锁
同步方法块,锁是括号里面的对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。
4.synchronized的作用

Synchronized是Java中解决并发问题的一种最常用最简单的方法 ,他可以确保线程互斥的访问同步代码
12月19
在tomcat启动时报invalid LOC header (bad signature)错误,这个问题真是搞死人啊,原来是一个jar的问题,删除让maven重新下载就好了,搞了我半天。

Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)  
    at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:142)  
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)  
    ... 12 more  
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)  
    at java.util.zip.ZipFile.read(Native Method)  
    at java.util.zip.ZipFile.access$1400(ZipFile.java:60)  
    at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:734)  
    at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:434)  
    at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)  
    at sun.misc.IOUtils.readFully(IOUtils.java:65)  
    at java.util.jar.JarFile.getBytes(JarFile.java:425)  
    at java.util.jar.JarFile.getManifestFromReference(JarFile.java:193)  
    at java.util.jar.JarFile.getManifest(JarFile.java:180)  
    at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:140)  
    ... 13 more  

下面是用于定位哪个jar文件没正常被加载的

点击在新窗口中浏览此图片
10月26
先来认识一下微信屏蔽的原理。按原理逐个攻破,整理如下:微信屏蔽的原理

一、微信系统的两个检测手段:第一是系统的自动检测;第二是微信工作人员的人工检测。

二、 人工的检测很好理解,有用户投诉举报,在多少时间内积累多少次的举报量 ,就有工作人员介入,开始人工检测。—–大站做防护解决。

三、自动检测系统是用户访问域名后跟踪域名内部非法违规的关键字——–跳转代码解决


淘宝客微信域名防封技术,如何防屏蔽?

系统或人工拉黑处理,同时记录域名以及路径——更换域名解决。

具体解决方法:

一、老站和知名站点的域名其实是跳板原理,建站时间久和行业内相对知名的域名最不容易被微信封杀,

当跳转代码注入到上述网站再利用安防等我网址做跳转,指向落地页,被微信封杀的可能性微乎其微;

也有同行用融合软件解决,这个问题我可以和大家单独讨论。


二、微信域名检测接口

微信域名检测接口,推荐使用一家的,快速而且稳定。

三、换域名和屏蔽微信右上角举报按钮把A域名,作为分享域名; 把B域名,作为落地域名(也就是用户访问看到的域名); 只有从A域名跳转到B域名,B域名显示的才是我们想展示给用户的内容,如果直接复制B的网址,打开的只是一个错误页面或者不违规的内容,也就是说如果TA点击右上角举报,举报的和访问的虽然是同一个网址,可是显示的内容却不同。

从而最大限度的防止域名被封杀。通过技术,屏蔽微信右上角的举报按钮,直接让用户无法举报,直接屏蔽了微信的举报功能,效果很不错。微信技术在不断升级更新,以后有机会把防屏蔽机制和经验总结给大家交流。
10月25
为方便大家接入这种第三方电商平台推广也方便自己以后查看参考:

开发配置:java、jdk1.8、idea、springboot、windows

一、拼多多

1、进入拼多多开放平台 http://open.pinduoduo.com/#/index 注册为开发者
点击在新窗口中浏览此图片
10月25
1、通过联盟下载的excel订单,可以看出每一个订单的唯一标识符有两个

    (1). 订单号

    (2). pid推广位

2、订单号在用户那里无法自动获取,区分订单方式

    (1). 让用户提交订单号(体验效果不好)

    (2). 给用户绑定一个pid(推荐)

3、目前联盟可以创建pid,上万个(具体多少没有统计)

    (1). 提前创建好pid 1万个插入数据库(可以借助软件),当用户注册的时候,随机分配一个pid进行绑定

    (2). 然后通过转链API接口,生成当前用户pid的推广链接,当用户购买以后,就会产生对应的pid订单,

    (3). 将联盟订单时时同步倒是数据库(可以借助软件30秒同步一次,1分钟同步一次)

    (4). 根据用户当前pid,查询对应订单

4、用到的技术

    (1). 转链高佣金API(官方API,高级权限)

    (2). 订单同步软件(或者官方API,高级权限)

    https://open.taobao.com/api.htm?docId=33892&docType=2

5:pid创建软件(目前没有API,模拟请求创建)
点击在新窗口中浏览此图片
10月25
淘宝客现在对多数人来说已经耳熟能详了,属于CPS(Cost Per Sale),一种网络广告收费标准,以实际销售产品数量来换算广告刊登金额。其他收费标准还有常见的CPC(Cost Per Click 按点击次数收费),和按周期展示收费,周期过后下架等。以前接触这方面也比较少,这里就不详细介绍了,下面开始进入如何从懵圈到把接口对接到APP通过应用的流量实现佣金收入。

注册账号
       首先在没有对接api前需要去注册一个阿里几个平台的账号,也可以直接用个人/企业 淘宝账号直接登录。

      1.淘宝联盟: https://pub.alimama.com/

      2.淘宝开放平台: http://open.taobao.com/

申请推广位
       登录进淘宝联盟,点击“活动推广”,然后选择“推广管理”,这里看你要做的是什么,是web就选择网站管理,app就选择APP管理。不过不管是网站还是APP都是要有雏形已经上线,网站需要内容足够丰富且有备案,APP需要在某应用市场上架,最后就是新建推广填写表单提交审核即可。广填写表单提交审核即可。
点击在新窗口中浏览此图片
Tags:
10月21
1.eclipse里修改项目在tomcat中的上下文访问路径eclipe里面部署web项目到集成的tomcat里默认访问路径是项目名称那么我要修改访问的路径怎么办?
看下图右键点击eclipse中需要改变访问url的项目找到web project setting 在右边Context root 处修改即可
如果访问url中不需要包含项目名称则把web-admin替换为反斜杠即可 /
点击在新窗口中浏览此图片
10月21
Nginx应该是现在最火的web和反向代理服务器,没有之一。她是一款诞生于俄罗斯的高性能web服务器,尤其在高并发情况下,相较Apache,有优异的表现。

那除了负载均衡,她还有什么其他的用途呢,下面我们来看下。
一、静态代理

Nginx擅长处理静态文件,是非常好的图片、文件服务器。把所有的静态资源的放到nginx上,可以使应用动静分离,性能更好。

二、负载均衡

Nginx通过反向代理可以实现服务的负载均衡,避免了服务器单节点故障,把请求按照一定的策略转发到不同的服务器上,达到负载的效果。常用的负载均衡策略有
点击在新窗口中浏览此图片

10月17
百度了几百篇文章都没有真正的将独立打包的过程写清楚。我写在这里只是为了自己以后可以查看。

1.需要在相应的项目的目录src目录下增加一下目录和文件
a.src/main/asse

2.修改pom.xml
在project配置里增加

<build>                
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4.1</version>
            <configuration>
                <descriptor>src/main/assembly/assembly.xml</descriptor>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>            
    </plugins>
</build>


10月17

Redis主从服务器配置

10:20编程杂谈  From: 本站原创
redis作为大家经常使用到的内存级缓存服务器,我们需要保证该服务的高可用性。 这里我介绍最简单的配置方式,使用主从方式集群,并使用sentinel程序来管理主从服务器的切换。下面我们就动手来实现吧.

配置 redis.conf

配置主服务器 master
master中我们除了修改需要使用的端口和绑定的ip地址为,其他的基本保留不变就可以了,当然你也可以按自己的喜欢配置其他参数
配置从服务器 slave
从服务器相对主服务器的配置修改成自己要的端口和绑定的ip外,还需要增加一个slaveof参数 用于指定该服务器的主服务器的ip和端口
配置sentinel服务
我们需要增加sentinel.conf文件配置监控服务的端口,ip地址

port 26379
sentinel myid 4c59c281412c7198c18781846505609a7e70c7dd
sentinel monitor master 127.0.0.1 7001 1
sentinel down-after-milliseconds master 5000
sentinel failover-timeout master 15000


port 指定sentinel服务的端口
myid用于指定该服务的id
montor 主服务器别名 主服务器的ip 端口 切换主从的从服务器投票数
down-after-milliseconds 主服务器别名 指定主服务器检测时间毫秒数
failover-timeout 主服务器别名 切换时间数
分页: 7/20 第一页 上页 2 3 4 5 6 7 8 9 10 11 下页 最后页 [ 显示模式: 摘要 | 列表 ]