Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
pulsar
提交
4d685b51
pulsar
项目概览
apache
/
pulsar
通知
129
Star
40
Fork
3
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Wiki
1
Wiki
分析
仓库
DevOps
项目成员
Pages
pulsar
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Pages
分析
分析
仓库分析
DevOps
Wiki
1
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
提交
体验新版 GitCode,发现更多精彩内容 >>
提交
4d685b51
编写于
10月 24, 2016
作者:
M
Matteo Merli
提交者:
GitHub
10月 24, 2016
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use local broker address as serviceURL when running WebSocket component embedded in broker (#82)
Fixes #77
上级
b33b2a19
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
39 addition
and
21 deletion
+39
-21
pulsar-broker/src/main/java/com/yahoo/pulsar/broker/PulsarService.java
.../src/main/java/com/yahoo/pulsar/broker/PulsarService.java
+4
-3
pulsar-websocket/src/main/java/com/yahoo/pulsar/websocket/WebSocketService.java
...ain/java/com/yahoo/pulsar/websocket/WebSocketService.java
+35
-18
未找到文件。
pulsar-broker/src/main/java/com/yahoo/pulsar/broker/PulsarService.java
浏览文件 @
4d685b51
...
...
@@ -16,9 +16,7 @@
package
com.yahoo.pulsar.broker
;
import
java.io.IOException
;
import
java.net.InetAddress
;
import
java.net.URL
;
import
java.net.UnknownHostException
;
import
java.util.List
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.Executors
;
...
...
@@ -58,6 +56,7 @@ import com.yahoo.pulsar.client.util.FutureUtil;
import
com.yahoo.pulsar.common.naming.DestinationName
;
import
com.yahoo.pulsar.common.naming.NamespaceName
;
import
com.yahoo.pulsar.common.naming.ServiceUnitId
;
import
com.yahoo.pulsar.common.policies.data.ClusterData
;
import
com.yahoo.pulsar.websocket.WebSocketConsumerServlet
;
import
com.yahoo.pulsar.websocket.WebSocketProducerServlet
;
import
com.yahoo.pulsar.websocket.WebSocketService
;
...
...
@@ -252,7 +251,9 @@ public class PulsarService implements AutoCloseable {
this
.
webService
.
addRestResources
(
"/lookup"
,
"com.yahoo.pulsar.broker.lookup"
,
true
);
if
(
config
.
isWebSocketServiceEnabled
())
{
this
.
webSocketService
=
new
WebSocketService
(
config
);
// Use local broker address to avoid different IP address when using a VIP for service discovery
this
.
webSocketService
=
new
WebSocketService
(
new
ClusterData
(
webServiceAddress
,
webServiceAddressTls
),
config
);
this
.
webSocketService
.
start
();
this
.
webService
.
addServlet
(
WebSocketProducerServlet
.
SERVLET_PATH
,
new
ServletHolder
(
new
WebSocketProducerServlet
(
webSocketService
)),
true
);
...
...
pulsar-websocket/src/main/java/com/yahoo/pulsar/websocket/WebSocketService.java
浏览文件 @
4d685b51
...
...
@@ -65,9 +65,17 @@ public class WebSocketService implements Closeable {
private
ServiceConfiguration
config
;
private
ConfigurationCacheService
configurationCacheService
;
private
ClusterData
localCluster
;
public
WebSocketService
(
ServiceConfiguration
config
)
throws
PulsarClientException
,
MalformedURLException
,
ServletException
,
DeploymentException
,
PulsarServerException
{
this
(
null
,
config
);
}
public
WebSocketService
(
ClusterData
localCluster
,
ServiceConfiguration
config
)
throws
PulsarClientException
,
MalformedURLException
,
ServletException
,
DeploymentException
,
PulsarServerException
{
this
.
config
=
config
;
this
.
localCluster
=
localCluster
;
}
public
void
start
()
throws
PulsarServerException
,
PulsarClientException
,
MalformedURLException
,
ServletException
,
...
...
@@ -129,28 +137,37 @@ public class WebSocketService implements Closeable {
public
synchronized
PulsarClient
getPulsarClient
()
throws
IOException
{
// Do lazy initialization of client
if
(
pulsarClient
==
null
)
{
ClusterData
localCluster
;
try
{
localCluster
=
configurationCacheService
.
clustersCache
()
.
get
(
"/admin/clusters/"
+
config
.
getClusterName
());
}
catch
(
Exception
e
)
{
throw
new
PulsarServerException
(
e
);
if
(
localCluster
==
null
)
{
// If not explicitly set, read clusters data from ZK
localCluster
=
retrieveClusterData
();
}
ClientConfiguration
clientConf
=
new
ClientConfiguration
();
clientConf
.
setStatsInterval
(
0
,
TimeUnit
.
SECONDS
);
if
(
config
.
isAuthenticationEnabled
())
{
clientConf
.
setAuthentication
(
config
.
getBrokerClientAuthenticationPlugin
(),
config
.
getBrokerClientAuthenticationParameters
());
}
pulsarClient
=
createClientInstance
(
localCluster
);
}
return
pulsarClient
;
}
if
(
config
.
isTlsEnabled
()
&&
!
localCluster
.
getServiceUrlTls
().
isEmpty
())
{
pulsarClient
=
PulsarClient
.
create
(
localCluster
.
getServiceUrlTls
(),
clientConf
);
}
else
{
pulsarClient
=
PulsarClient
.
create
(
localCluster
.
getServiceUrl
(),
clientConf
);
}
private
PulsarClient
createClientInstance
(
ClusterData
clusterData
)
throws
IOException
{
ClientConfiguration
clientConf
=
new
ClientConfiguration
();
clientConf
.
setStatsInterval
(
0
,
TimeUnit
.
SECONDS
);
if
(
config
.
isAuthenticationEnabled
())
{
clientConf
.
setAuthentication
(
config
.
getBrokerClientAuthenticationPlugin
(),
config
.
getBrokerClientAuthenticationParameters
());
}
if
(
config
.
isTlsEnabled
()
&&
!
clusterData
.
getServiceUrlTls
().
isEmpty
())
{
return
PulsarClient
.
create
(
clusterData
.
getServiceUrlTls
(),
clientConf
);
}
else
{
return
PulsarClient
.
create
(
clusterData
.
getServiceUrl
(),
clientConf
);
}
}
private
ClusterData
retrieveClusterData
()
throws
PulsarServerException
{
try
{
return
configurationCacheService
.
clustersCache
().
get
(
"/admin/clusters/"
+
config
.
getClusterName
());
}
catch
(
Exception
e
)
{
throw
new
PulsarServerException
(
e
);
}
return
this
.
pulsarClient
;
}
public
ConfigurationCacheService
getConfigurationCache
()
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录